После месяца или около того чтения и исследования DDD я решил начать свой собственный проект и создал DDD с этими ограниченными контекстами>
- клиенты
- Товары
- заказы
- Billing
Каждый ограниченный контекст имеет API покоя в качестве уровня представления, уровня домена, постоянного уровня.
Пока все хорошо, код работает гладко, но, исходя из монолитного мира, я все еще пытаюсь выяснить следующее:
- когда я хочу создать нового клиента, выставить новый счет, создать новый заказ, например, список доступа стран. Должен ли я:
а) создать список стран в каждом БК
б) создать Страны БК -> API и использовать его для получения списка доступных стран
c) использовать сторонний API и извлекать данные через антикоррупционный слой в каждом BC
- при интеграции со сторонним API с использованием антикоррупционного уровня или уровня адаптера, какие данные должны быть включены в мою модель домена? Например, если я хочу интегрировать API zendesk с клиентом BC. Нужен ли мне просто ticketID в моем домене или я должен извлечь все данные из Zendesk, к которым я хочу получить доступ и использовать в Client BC?
Если мое приложение MVC на самом деле получает данные из API (уровни представления моего ограниченного контекста), мне очень трудно четко определить границы каждого BC. Означает ли это, что правильно спроектированный BC будет обслуживать один контроллер MVC без необходимости использования дополнительных API?