บ่อยครั้งในงานของฉันแนวคิดเกี่ยวกับการซิงโครไนซ์ข้อมูลแบบ 2 ทางระหว่างระบบฐานข้อมูลทำให้ข้อมูลเกิด ตัวอย่างคลาสสิกคือระบบ CRM ที่แตกต่างกันสองระบบ (เช่น Raiser's Edge และ Salesforce) และจำเป็นต้องมีการซิงค์ข้อมูลผู้ติดต่อสองทางระหว่างกัน
ข้อควรพิจารณาเกี่ยวกับ API นอกเหนือจากสมมติว่าคุณมีคีย์ที่ใช้ร่วมกันในการซิงค์และคิดถึงอัลกอริธึม / รูปแบบที่จะใช้อย่างหมดจดนี่เป็นงานที่มักจะถูกประเมินโดยผู้ที่ไม่ใช่ช่างเทคนิค
ตัวอย่างเช่นคุณต้องระวัง:
- คุณสามารถตรวจสอบระเบียนที่มีการเปลี่ยนแปลงในทั้งสองระบบได้อย่างง่ายดาย (หรือคุณจะต้องเปรียบเทียบระเบียนทั้งหมดระหว่างระบบเพื่อตรวจจับการเปลี่ยนแปลง)
- หากคุณกำลังจะทำการซิงค์หนึ่งครั้งทุก ๆ ชั่วโมงวิธีการจัดการกับความขัดแย้งที่การเปลี่ยนแปลงระเบียนเดียวกันในเวลาเดียวกันมากขึ้นหรือน้อยลงในทั้งสองระบบ
- หากคุณกำลังทำการซิงค์แบบเรียลไทม์ (เช่นการอัปเดตในระบบหนึ่งจะกระตุ้นการอัปเดตไปยังระบบอื่นทันที) วิธีจัดการความแตกต่างเมื่อเวลาผ่านไปเนื่องจากข้อบกพร่องหรือระบบล่ม
โดยส่วนตัวฉันสามารถคิดหาวิธีจัดการกับสิ่งเหล่านี้ทั้งหมด แต่ฉันสงสัยว่ามีรูปแบบที่เป็นที่รู้จักกันดีวรรณกรรมหรือแนวปฏิบัติที่ดีที่สุดที่ฉันสามารถอ้างถึงได้หรือไม่