Obaj mają pojęcie użytkownika i będą rozmawiać o użytkownikach poprzez wzajemne połączenia.
Zgadzam się również z tym, co powiedział @soru. Jeśli jedna usługa potrzebuje danych innej usługi, ich granice są nieprawidłowe.
Dobrym rozwiązaniem jest to, co wymyślił @pnschofield - traktując twoje usługi jako kontekst Ograniczony.
Mówiąc o tym, krótko mówiąc: modele współdzielonych domen zabijają autonomię usług, zmieniając system mikrousług w rozproszony monolit. Co jest najwyraźniej gorsze niż monolit.
Pozostaje więc ogólne pytanie nierozwiązane - jak zdefiniować granice usługi lub kontekstu, aby rozwijały się one w wysokiej spójności i luźnej dobroci łączenia.
Wymyśliłem rozwiązanie, aby traktować moje konteksty jako możliwości biznesowe. Jest to wyższa odpowiedzialność biznesowa, funkcjonalność biznesowa, przyczyniająca się do ogólnego celu biznesowego. Możesz myśleć o nich jako o krokach, które Twoja organizacja musi przejść, aby uzyskać wartość biznesową.
Moja typowa sekwencja kroków, które podejmuję podczas identyfikowania granic usług, jest następująca:
- Zidentyfikuj możliwości biznesowe wyższego poziomu. Zazwyczaj są one podobne wśród organizacji z tej samej domeny. Możesz poczuć, jak to wygląda, sprawdzając model łańcucha wartości Portera .
- W ramach każdej możliwości zagłębiaj się głębiej i określ możliwości podrzędne.
- Zwróć uwagę na komunikację między możliwościami. Zobacz, co robi organizacja. Zwykle komunikacja koncentruje się w obrębie możliwości, powiadamiając resztę o wyniku swojej pracy. Dlatego przy wdrażaniu architektury technicznej Twoja usługa powinna również komunikować się za pośrednictwem zdarzeń. Ma to wiele pozytywnych konsekwencji. Dzięki takiemu podejściu Twoje usługi są autonomiczne i spójne. Nie potrzebują komunikacji synchronicznej i transakcji rozproszonych.
Prawdopodobnie przykład tej techniki byłby dla ciebie interesujący. Nie wahaj się i daj mi znać, co myślisz, ponieważ uważam to podejście za bardzo opłacalne. Pewnie, że może to również zadziałać.