Я вполне уверен в разработке приложений DDD, но одна область, которая продолжает вызывать у меня проблемы, это когда два приложения интегрируются друг с другом. Я изо всех сил пытаюсь найти любые полезные книги или ресурсы по этой теме. В таких книгах, как Patterns of EAI, подробно рассматриваются шаблоны обмена сообщениями и построение сообщений, но в действительности не объясняется, как создавать системы, использующие эти шаблоны.
Я искал высоко и низко, и я совершенно уверен, что нет примеров приложений, которые демонстрируют, как интегрировать две системы. Я понимаю концепцию асинхронного обмена сообщениями, но опять же не могу найти хороших примеров того, как его применить.
Ресурсы по SOA, похоже, продолжают повторять одни и те же понятия, не демонстрируя, как их реализовать, и чаще всего кажутся более заинтересованными в продаже мне продуктов.
Вот вопросы, на которые я пытаюсь ответить:
Должно ли каждое приложение иметь свою собственную копию данных? Например, должно ли каждое приложение в организации иметь свой собственный список клиентов, который он обновляет после получения сообщения?
В какой момент в стеке DDD передаются сообщения? Являются ли они результатом доменных событий?
Могу ли я объединить асинхронные сообщения и WCF или мне нужно выбрать? Использую ли я WCF для запроса / ответа и обмена сообщениями для публикации / подписки?
Как одно приложение DDD использует услуги другого? Должно ли одно приложение DDD запрашивать данные у другой системы через свои сервисы приложений или у него уже есть собственная локальная копия данных, как указано в пункте 1?
Видимо, у меня не может быть транзакции в двух системах. Как мне этого избежать?
Если я звучу смущенным, это потому, что я есть. Я не ищу ответы на вышеупомянутые вопросы, просто указываю в направлении ресурсов, которые ответят на этот вопрос и схожих вопросов.