Вони обидва мають поняття «Користувач» і будуть говорити про користувачів через дзвінки один одному.
Я також згоден з тим, що сказав @soru. Якщо одній службі потрібні дані іншої служби, їх межі неправильні.
Гарне рішення - це те, що придумав @pnschofield - трактувати ваші послуги як обмежений контекст.
Якщо говорити про цю тему, коротко: моделі спільних доменів вбивають автономію сервісу, перетворюючи вашу мікросервісну систему в розподілений моноліт. Що, мабуть, навіть гірше, ніж моноліт.
Таким чином, все ще залишається невирішеним загальне питання - як визначити межі обслуговування чи контексту, щоб вони процвітали у високій згуртованості та слабкості зв'язку.
Я придумав рішення, як трактувати свої контексти як бізнес-спроможність. Це відповідальність за бізнес, вищий рівень, бізнес-функціональність, що сприяє загальній цілі бізнесу. Ви можете думати про них, як про кроки, якими має пройти ваша організація, щоб отримати ділову цінність.
Моя типова послідовність кроків, які я виконую під час визначення меж обслуговування, така:
- Визначте бізнес-можливості вищого рівня. Зазвичай вони схожі серед організацій з одного домену. Ви можете відчути, як виглядає перевірка моделі ланцюга вартості Портера .
- У межах кожної з можливостей поглибимось глибше та визначте під-можливості.
- Зверніть увагу на зв’язок між можливостями. Подивіться, що робить організація. Зазвичай спілкування зосереджено в межах можливостей, сповіщаючи решту про результат своєї роботи. Тож, впроваджуючи технічну архітектуру, ваша служба повинна також спілкуватися через події. Це має численні позитивні наслідки. При такому підході ваші послуги стають автономними та згуртованими. Вони не потребують синхронного зв'язку та розподілених транзакцій.
Можливо, приклад цієї методики зацікавив би вас. Не соромтеся повідомити мені, що ви думаєте, оскільки я вважаю такий підхід справді вигідним. Впевнені, що це може спрацювати і для вас.