Tôi đang xây dựng một ứng dụng mới và đang đọc về kiến trúc dịch vụ vi mô. Các kiến trúc tự nó có rất nhiều ý nghĩa từ quan điểm phát triển, triển khai và quản lý vòng đời. Tuy nhiên, một vấn đề nảy sinh liên quan đến cách xử lý dữ liệu chủ.
Ví dụ: tôi có 2 ứng dụng - giả sử ứng dụng Bán hàng và ứng dụng Bán vé. Giả sử rằng cả hai ứng dụng này đều được xây dựng dưới dạng các dịch vụ vi mô riêng. Tuy nhiên, cả hai ứng dụng này, khi được triển khai (giả sử rằng chúng được triển khai riêng cho biết Bán hàng sử dụng MongoDB và Bán vé sử dụng MariaDB), sẽ cần có quyền truy cập vào cùng các trường hợp dữ liệu chính, ví dụ như Tài khoản, Sản phẩm. Điều này có nghĩa là sẽ có một ứng dụng chủ sở hữu cho một thực thể dữ liệu chính nhất định (ví dụ: đối với Tài khoản, đó có thể là ứng dụng Bán hàng) và một bên quan tâm (ví dụ: Ứng dụng bán vé sẽ cần có thông tin về Tài khoản).
Có nhiều cách để đạt được điều này: - Sao chép dữ liệu từ chủ sang bên quan tâm - Đọc đồng bộ từ bên quan tâm đến chủ (phụ thuộc đồng bộ hóa không được đề xuất bởi mô hình kiến trúc dịch vụ vi mô) - Kho lưu trữ tập trung riêng
Ngoài ra, ngay cả trong Tài khoản, có thể có một phần cốt lõi chung cho cả Bán hàng và Bán vé (ví dụ: tên tài khoản, địa chỉ, v.v.). Tuy nhiên, một số khía cạnh của Tài khoản CHỈ có thể liên quan đến Bán hàng và những khía cạnh khác CHỈ liên quan đến Bán vé.
Bất kỳ suy nghĩ / thực tiễn tốt nhất / ý kiến liên quan đến bất kỳ lựa chọn được đề cập ở trên?