У меня возникла дилемма, связанная с DDD (Domain Driven Design) .
Давайте упростим описание и предположим, что у нас есть 3 домена. Для каждого домена есть выделенные коллекции в базе данных. Давайте предположим:
- 1-й домен покрыт командой 1, которая выбрала решение для сохранения данных в наборе данных документа, например, MongoBD или ArangoDB
- 2-я команда отвечает за второй домен и основана на требования, которые они выбрали Elasti c Search.
- 3-я группа выбрала Oracle, который, как представляется, лучше всего подходит для последнего домена.
На протяжении реализации приложения растет потребность для сложных функций поиска, используя атрибуты, которые распределены в разных доменах, например:
Найти всю информацию, где DomainA.SomeInformation = "Filter 1" и / или DomainB.AnotherInformation = "Filter 2" и / или домен C .AnotherInformation = "Фильтр 3".
Примечания:
- возможно, должна существовать сложная модель чтения, которая собирает всю информацию в рамках одной модели, например, с использованием CQRS - домены обмениваются информацией, например, по каналам сообщений, чтобы информация могла быть синхронизирована с преимуществом Read Models
- s: приведенный выше случай позволяет ввести постоянство полиглота, каждая команда поставляет автономные модули
- вызов: возможно, существует проблема с предлагаемыми ограниченными контекстами, и домены разделены неправильно.
Как чтобы справиться с вышеупомянутым случаем, когда домены, кажется, разделены должным образом, но в другое время поиск данных является сложной задачей, поскольку нет единого источника информации.