Я создаю новое приложение SaaS и хочу следовать принципам DDD.
Я на этапе, когда я делаю наброски идей, и я столкнулся с этой проблемой. Я надеюсь, что люди могут дать мне некоторые мысли. Я не думаю, что это обязательно правильно или неправильно с этим. Но я хотел бы услышать ваши мысли …
По сути, я не уверен, куда относится биллинг и как его лучше всего реализовать.
Я не знаю, должен ли пользователь знать интерфейс биллинга. Ответственность за проведение выставления счетов лежит на пользователях?
Я думаю, что для пользователя справедливо знать, есть ли у него подписка, но не как она была реализована.
На этом этапе я думаю, что уровень домена будет указывать BillingInterace, а реализация будет жить на уровне инфраструктуры. (Я буду использовать Stripe для начала)
Вы бы создали службу биллинга и передали бы пользовательскую сущность, чтобы создать учетную запись клиента на полосе и выполнить функцию биллинга?
Или вы бы закодировали признак, который сбрасывается на сущность пользователя, чтобы пользователь мог выставлять счета самостоятельно ($ user-> charge () — или что-то еще).
Надеюсь, что это имеет смысл. Я просто собираюсь поделиться некоторыми идеями, поскольку я не могу найти приличного руководства онлайн с этим материалом.
Спасибо!!
подветренный
Ответственность за проведение выставления счетов лежит на пользователях?
Я так не думаю.
На этом этапе я думаю, что уровень домена будет указывать BillingInterace, а реализация будет жить на уровне инфраструктуры.
Является ли биллинг частью домена (бизнеса)? Если да, то это должно быть там.
Может быть, биллинг может быть совокупный корень или доменная служба. Заглянуть в этот пост, в котором Заказ на покупку (совокупность) может быть вашим биллингом. И в этот, это объясняет доменные службы.
Других решений пока нет …