Cả hai đều có khái niệm về Người dùng và sẽ nói về Người dùng thông qua các cuộc gọi với nhau.
Tôi cũng đồng ý với những gì @soru nói. Nếu một dịch vụ cần dữ liệu của dịch vụ khác, thì ranh giới của chúng là sai.
Một giải pháp tốt là những gì @pnschofield đã đưa ra - coi dịch vụ của bạn là bối cảnh bị ràng buộc.
Nói về chủ đề này, hãy nói ngắn gọn: các mô hình miền chia sẻ giết chết quyền tự chủ dịch vụ, biến hệ thống microservice của bạn thành nguyên khối phân tán. Mà rõ ràng là còn tồi tệ hơn một tảng đá nguyên khối.
Vì vậy, vẫn còn một câu hỏi chung chưa được giải quyết - làm thế nào để xác định ranh giới dịch vụ hoặc bối cảnh, để chúng phát triển mạnh về độ kết dính cao và độ tốt khớp nối lỏng lẻo.
Tôi đã đưa ra một giải pháp để coi bối cảnh của mình là khả năng kinh doanh. Đó là một trách nhiệm kinh doanh cấp cao hơn, chức năng kinh doanh, đóng góp cho mục tiêu kinh doanh tổng thể. Bạn có thể nghĩ về chúng như các bước mà tổ chức của bạn cần phải đi bộ mặc dù để có được giá trị kinh doanh.
Trình tự điển hình của tôi về các bước tôi thực hiện khi xác định ranh giới dịch vụ là như sau:
- Xác định khả năng kinh doanh cấp cao hơn. Thông thường họ giống nhau giữa các tổ chức từ cùng một tên miền. Bạn có thể cảm nhận được nó trông như thế nào khi kiểm tra mô hình chuỗi giá trị của Porter .
- Trong mỗi khả năng, đào sâu hơn và xác định các khả năng phụ.
- Lưu ý giao tiếp giữa các khả năng. Nhìn vào những gì một tổ chức làm. Thông thường, giao tiếp được tập trung trong các khả năng, thông báo phần còn lại về kết quả công việc của nó. Vì vậy, khi thực hiện kiến trúc kỹ thuật, dịch vụ của bạn cũng nên liên lạc qua các sự kiện. Điều này có nhiều hậu quả tích cực. Với phương pháp này, các dịch vụ của bạn được tự chủ và gắn kết. Họ không cần giao tiếp đồng bộ và giao dịch phân tán.
Có lẽ một ví dụ về kỹ thuật này sẽ được bạn quan tâm. Đừng ngần ngại cho tôi biết bạn nghĩ gì, vì tôi thấy phương pháp này thực sự có lợi. Chắc chắn nó có thể làm việc cho bạn là tốt.