Chúng tôi đang trong quá trình di chuyển một ứng dụng nguyên khối sang kiến trúc microservice. Do một số yêu cầu quy định, chúng tôi phải giữ dữ liệu của khách hàng từ các quốc gia khác nhau trong cơ sở dữ liệu riêng biệt (quốc gia cụ thể). Tức là db Mỹ cho khách hàng Hoa Kỳ, db Anh cho khách hàng Vương quốc Anh ...
Các thiết kế sau đây mà chúng tôi đang xem xét như sau:
Tùy chọn 1: Một ứng dụng nhiều người thuê với sự hỗ trợ của nhiều người thuê ngủ đông có thể được thu nhỏ thành N số lần phụ thuộc vào nhu cầu (nghĩ về các nhóm kubernetes). Một phiên bản duy nhất của ứng dụng này sẽ có thể kết nối với tất cả các cơ sở dữ liệu.
Tùy chọn 2: Triển khai 1 phiên bản microservice cho mỗi cơ sở dữ liệu quốc gia. Với một cổng API ở phía trước chúng định tuyến lưu lượng
Nếu bạn thiết kế loại hệ thống này, lựa chọn của bạn là gì?