Интеграция с БД (о чем вы действительно говорите, когда две службы совместно используют таблицу в БД) неверна на многих уровнях!
Это полностью нарушает некоторые основные принципы разработки программного обеспечения
слабая связь,
инкапсуляция
разделение интересов
Служба должна быть (чтобы заработать это имя) полностью независимой, а именно:
- он не должен полагаться на других для обеспечения согласованности и согласованности своих данных
- он не должен полагаться на других в обеспечении безопасности своих данных
- он не должен зависеть от внешних реализаций (только интерфейсы)
Две службы, которые совместно используют данные на уровне БД, не могут гарантировать ни одну из первых.
Тот факт, что вы «контролируете» обе службы, совершенно не имеет значения. Сегодня вы контролируете ... завтра вы можете отдать на аутсорсинг или заменить одну из услуг. Это должно быть так же просто, как и обеспечить правильные интерфейсы.
Представьте себе обе службы, которые совместно используют таблицу с некоторым полем (varchar) в ней. Теперь одна служба должна изменить это поле на числовое ... bang, другая служба перестает работать - слабая связь исчезает.
Большую часть времени трюк заключается в правильном определении объема услуг и четком определении того, что сервис делает, а что нет. Вам также следует избегать превращения всего в сервис. Установите высокую степень детализации службы, и службы начнут появляться везде, и проблемы с интеграцией возрастут.
При этом существуют ситуации, когда интеграция данных между службами создает определенные проблемы. Главное условие, которое нужно делать, должно быть всегда - данные могут принадлежать только одному сервису. Данные неразрывно связаны с бизнес-логикой, которая влияет на согласованность и согласованность данных, и поэтому никогда не должно быть более одной службы, контролирующей любые данные.