Нещодавно я читав схеми інтеграції підприємств Хопе та Вулфа, деякі книги Томаса Ерла про SOA та переглядав різні відео та подкасти Уді Дахана та ін. на системах CQRS та керованих подіями
Системи на моєму місці роботи страждають від високої зв'язку. Хоча теоретично для кожної системи є своя база даних, між ними існує багато об'єднань. На практиці це означає, що існує одна величезна база даних, якою користуються всі системи. Наприклад, є одна таблиця даних про клієнтів.
Багато з того, що я читав, здається, пропонують денормалізувати дані, так що кожна система використовує лише свою базу даних, а будь-які оновлення однієї системи поширюються на всі інші за допомогою обміну повідомленнями.
Я подумав, що це один із способів закріплення меж у SOA - кожен сервіс повинен мати власну базу даних, але потім я прочитав це:
/programming/4019902/soa-joining-data-across-multiple-services
і це говорить про те, що це неправильно робити.
Сегрегація баз даних здається хорошим способом роз’єднання систем, але зараз я трохи заплутаний. Це хороший маршрут? Чи рекомендується вам коли-небудь відокремити базу даних, скажімо, службу SOA, обмежений для DDD контекст, програму тощо?