- Bài viết giới thiệu tương tác về Conflict-free Replicated Data Types (CRDTs)
- Một loại cấu trúc dữ liệu được lưu trên các máy tính khác nhau (peer) và có thể được cập nhật ngay lập tức mà không cần yêu cầu mạng hay xác nhận với các peer khác
- CRDTs rất phù hợp để xây dựng các ứng dụng cộng tác phong phú như Google Docs và Figma mà không cần máy chủ trung tâm để đồng bộ hóa
- Có hai loại CRDTs: dựa trên trạng thái và dựa trên thao tác
- CRDTs dựa trên trạng thái truyền toàn bộ trạng thái giữa các peer, và trạng thái mới được tạo ra bằng cách hợp nhất mọi trạng thái
- CRDTs dựa trên thao tác chỉ truyền các hành động người dùng thực hiện, và chúng có thể được dùng để tính toán trạng thái mới
- Bài viết này tập trung vào CRDTs dựa trên trạng thái, giải thích cách xây dựng các CRDT nguyên thủy, cách kết hợp chúng thành các cấu trúc dữ liệu phức tạp hơn, và cách xây dựng một trình chỉnh sửa pixel art cộng tác
- Giới thiệu khái niệm Last Write Wins Register (LWW Register), một loại CRDT đơn giản giữ một giá trị duy nhất và dùng dấu thời gian để ghi đè giá trị hiện tại bằng giá trị được ghi cuối cùng
- Đồng thời giới thiệu khái niệm Last Write Wins Map (LWW Map), một loại CRDT phức tạp hơn có thể giữ một hoặc nhiều giá trị
- Bao gồm sân chơi tương tác giúp hiểu cách LWW Registers và LWW Maps hoạt động
- Bài viết tiếp theo sẽ tập trung vào việc xây dựng một trình chỉnh sửa pixel art cộng tác bằng các khái niệm được mô tả trong bài này
2 bình luận
Nội dung khá thú vị. Trước giờ tôi vẫn thắc mắc những ứng dụng cho phép cộng tác thời gian thực như Google Docs được triển khai như thế nào...
Ý kiến trên Hacker News