제 작품에서 데이터베이스 시스템 간의 양방향 데이터 동기화라는 아이디어가 자주 발생합니다. 전형적인 예는 두 개의 약간 다른 CRM 시스템 (예 : Raiser 's Edge와 Salesforce)이며 서로간에 연락처 데이터를 양방향으로 동기화해야합니다.
API 고려 사항을 제외하고 동기화 할 공유 키가 있고 순수하게 알고리즘 / 패턴을 사용한다고 가정 할 때 이는 비 기술자들이 종종 과소 평가하는 작업입니다.
예를 들어 다음을주의해야합니다.
- 두 시스템에서 변경된 레코드를 쉽게 감지 할 수 있습니까 (또는 변경 사항을 감지하기 위해 시스템 간의 모든 레코드를 비교해야 함)
- N 시간마다 한 번 동기화하려는 경우 두 시스템에서 동일한 레코드가 거의 동시에 변경되는 충돌을 처리하는 방법
- 실시간 동기화를 수행하려는 경우 (즉, 한 시스템의 업데이트가 즉시 다른 시스템에 대한 업데이트를 트리거하는 경우) 버그 또는 시스템 충돌로 인한 시간의 차이를 처리하는 방법
개인적으로 나는이 모든 것을 다룰 수있는 방법을 생각할 수 있지만 내가 참조 할 수있는 잘 알려진 패턴, 문헌 또는 모범 사례가 있는지 궁금합니다.