- บทความแนะนำแบบโต้ตอบเกี่ยวกับ Conflict-free Replicated Data Types (CRDTs)
- ประเภทของโครงสร้างข้อมูลที่สามารถเก็บไว้บนคอมพิวเตอร์หลายเครื่อง (peer) และอัปเดตได้ทันทีโดยไม่ต้องมีคำขอผ่านเครือข่ายหรือยืนยันกับ peer อื่น
- CRDTs เหมาะอย่างยิ่งสำหรับการสร้างแอปทำงานร่วมกันที่มีความสามารถสูงอย่าง Google Docs และ Figma โดยไม่ต้องพึ่งข้อกำหนดการซิงก์ผ่านเซิร์ฟเวอร์กลาง
- CRDTs มีอยู่ 2 ประเภท คือ แบบอิงสถานะและแบบอิงการปฏิบัติการ
- CRDTs แบบอิงสถานะจะส่งสถานะทั้งหมดระหว่าง peer และได้สถานะใหม่โดยการรวมทุกสถานะเข้าด้วยกัน
- CRDTs แบบอิงการปฏิบัติการจะส่งเฉพาะการกระทำที่ผู้ใช้ทำ ซึ่งสามารถนำไปใช้คำนวณสถานะใหม่ได้
- บทความนี้เน้นที่ CRDTs แบบอิงสถานะ และอธิบายวิธีสร้าง CRDT พื้นฐาน วิธีประกอบให้เป็นโครงสร้างข้อมูลที่ซับซ้อนขึ้น และวิธีสร้างตัวแก้ไขพิกเซลอาร์ตแบบทำงานร่วมกัน
- แนะนำแนวคิด Last Write Wins Register (LWW Register) ซึ่งเป็น CRDT แบบง่ายที่เก็บค่าเดียวและใช้ timestamp เพื่อเขียนทับค่าปัจจุบันด้วยค่าที่ถูกเขียนล่าสุด
- นอกจากนี้ยังแนะนำแนวคิด Last Write Wins Map (LWW Map) ซึ่งเป็น CRDT ที่ซับซ้อนขึ้นและสามารถเก็บค่าได้มากกว่าหนึ่งค่า
- มี interactive playground เพื่อช่วยให้เข้าใจการทำงานของ LWW Registers และ LWW Maps
- บทความถัดไปจะมุ่งเน้นไปที่การสร้างตัวแก้ไขพิกเซลอาร์ตแบบทำงานร่วมกันโดยใช้แนวคิดที่อธิบายไว้ในบทความนี้
2 ความคิดเห็น
เนื้อหาน่าสนใจมากเลยครับ ก่อนหน้านี้ก็สงสัยอยู่ว่าแอปที่ทำงานร่วมกันแบบเรียลไทม์ได้อย่าง Google Docs เขาสร้างกันอย่างไร...
ความคิดเห็นจาก Hacker News