2015-12-01 16 views
6

Tôi có 2 đối tượng miền: Dự án và Hợp đồng. Một dự án có thể có nhiều hợp đồng như vậy trong cơ sở dữ liệu nó được mô hình hóa như một mối quan hệ một-nhiều cổ điển. Câu hỏi của chúng tôi là: Làm thế nào để bạn mô hình hóa ở trên trong bối cảnh của microservices? Bạn (a) có 2 microservices ProjectService và ContractService? hoặc (b) Bạn có một ProjectService bao gồm cả Dự án và Hợp đồng? Chúng tôi đang nghĩ rằng câu trả lời (a) (tức là 2 microservices ProjectService và ContractService) ngụ ý rằng người ta sẽ phải gọi 2 dịch vụ để lấy và lưu toàn bộ hệ thống phân cấp đối tượng Project. Mặt khác, trả lời (a) hoàn toàn tách rời các Dự án khỏi các Hợp đồng có thể là một điều tốt về mặt lý thuyết, nhưng thực tế vô dụng vì một Hợp đồng không thể tồn tại một cách logic mà không có một Dự án.microservices: Làm thế nào để mô hình hóa các đối tượng miền liên quan?

Cách tiếp cận chính xác ở đây là gì? Câu trả lời (a) là một ví dụ về mẫu chống dịch vụ nano?

Trả lời

9

Điều đó phụ thuộc vào phạm vi phức tạp của "dự án" và "hợp đồng". Bằng cách trả lời các câu hỏi sau đây, tôi hy vọng bạn sẽ có thể đưa ra quyết định đúng:

  1. Cách ly quan điểm thay đổi: bạn có mong đợi thay đổi trong một miền độc lập hoặc thường xuyên hơn ở một miền khác không?
  2. Phối cảnh thiết lập nhóm: bạn có mong đợi các chức năng đó sẽ được thực hiện bởi các nhóm riêng biệt/nhiều nhóm không? Liệu họ có thể làm việc độc lập mà không có bất kỳ kiến ​​thức nào về miền của một nhóm khác không?
  3. Quan điểm về công nghệ: bạn có dự định sẽ triển khai và hợp đồng các miền được triển khai hiệu quả hơn với các công nghệ khác nhau không?
  4. Phối cảnh nhất quán về dữ liệu: bạn có thể chấp nhận sự nhất quán cuối cùng giữa dự án và hợp đồng không?
  5. Quan điểm yêu cầu phi chức năng: yêu cầu về hiệu suất và tính sẵn có cho các dịch vụ đó có khác nhau không?
  6. Quan điểm về rủi ro công nghệ: bạn đã có hệ thống phân phối và chuyên môn cần thiết trong nhóm chưa?
  7. Quan điểm gắn kết: cố gắng mô hình hóa các dịch vụ, là một trong số chúng hoàn toàn độc lập trong thời gian chạy từ một dịch vụ khác? Phụ thuộc lẫn nhau là dấu hiệu của sự gắn kết cao và ứng cử viên xấu cho các dịch vụ khác nhau
  8. Quan điểm của khách hàng dịch vụ: liệu những dịch vụ đó có các khách hàng khác nhau không? cả hai dịch vụ này có được truy cập bởi một dịch vụ khác không?

Nếu câu trả lời là "có" cho hầu như tất cả câu hỏi, hãy tiếp tục với 2 dịch vụ nhỏ. Tôi nghĩ rằng rất có thể nó không phải là.

Các vấn đề liên quan