Tôi thường xuyên làm việc với ý tưởng đồng bộ hóa dữ liệu 2 chiều giữa các hệ thống cơ sở dữ liệu. Ví dụ kinh điển là hai hệ thống CRM hơi khác nhau (giả sử, Raiser Edge và Salesforce) và cần phải đồng bộ hóa hai chiều dữ liệu Liên hệ giữa chúng.
Bỏ qua các cân nhắc API, giả sử bạn có khóa chung để đồng bộ hóa và hoàn toàn nghĩ về thuật toán / mẫu sẽ được sử dụng, đây là một nhiệm vụ thường bị đánh giá thấp bởi những người không chuyên về công nghệ.
Ví dụ: bạn phải coi chừng:
- Bạn có thể dễ dàng phát hiện bản ghi nào đã thay đổi trong cả hai hệ thống (hoặc bạn sẽ phải so sánh tất cả các bản ghi giữa các hệ thống để phát hiện các thay đổi)
- Nếu bạn đang đồng bộ hóa một lần mỗi N giờ, làm thế nào để giải quyết các xung đột khi cùng một bản ghi thay đổi ít nhiều cùng một lúc trong cả hai hệ thống
- Nếu bạn đang đồng bộ hóa thời gian thực (tức là bản cập nhật trong một hệ thống sẽ ngay lập tức kích hoạt bản cập nhật cho hệ thống khác), cách xử lý phân kỳ theo thời gian do lỗi hoặc sự cố hệ thống
Cá nhân tôi có thể nghĩ ra cách để giải quyết tất cả những điều này nhưng tôi tự hỏi liệu có bất kỳ mô hình, tài liệu hay thực tiễn tốt nhất nào mà tôi có thể tham khảo.