- Reflect là một framework mới để xây dựng các ứng dụng web nhiều người chơi tương tự Figma, Notion và Google Sheets.
- Đây là phiên bản phát triển của Replicache, một framework đồng bộ hóa phía client, và đã bổ sung máy chủ được quản lý hoàn toàn để giúp việc phát triển ứng dụng nhiều người chơi dễ dàng hơn.
- Reflect hiện đã lần đầu tiên được cung cấp công khai.
- Framework này xử lý vấn đề giải quyết xung đột trong chỉnh sửa cộng tác, bảo đảm mọi người dùng đều nhìn thấy cùng một nội dung và xung đột được giải quyết một cách tự nhiên.
- Khác với các công cụ phổ biến trong hệ sinh thái web như CRDTs (Conflict-Free Replicated Data Types), Reflect sử dụng kỹ thuật Transactional Conflict Resolution vốn phổ biến trong ngành công nghiệp game.
- Ưu điểm và điểm khác biệt độc đáo của Reflect bắt nguồn từ những lựa chọn cốt lõi của bộ máy đồng bộ hóa này.
- Reflect dùng các hàm JavaScript gọi là mutators để áp dụng thay đổi, đồng thời tạo ra mutation record tại thời điểm mutator được gọi.
- Mutation được áp dụng cục bộ và truyền luồng lên máy chủ; máy chủ sẽ tuyến tính hóa mutation theo thời điểm đến để tạo ra trạng thái có thẩm quyền tiếp theo.
- Reflect có thể xử lý các ứng dụng thay đổi nhanh, tiếp tục thêm mutation trong khi chờ xác nhận của các mutation trước đó.
- Framework này cần một kho dữ liệu nhanh có thể tua ngược, fork và tạo nhánh, cùng với một kho lưu trữ phía máy chủ đủ nhanh để bắt kịp các mutation đi vào.
- Cách tiếp cận của Reflect có tính khái quát hóa tốt, phù hợp với nhiều tác vụ như phép toán số học, thao tác danh sách và áp đặt các bất biến ở mức cao.
- Máy chủ của Reflect là nguồn có thẩm quyền, tự tính lại kết quả của mutation và cho phép mọi client nhìn thấy kết quả đó.
- Tính có thẩm quyền của máy chủ này cho phép xác thực chi tiết và thực thi các đoạn mã khác trên máy chủ.
- Reflect cũng mang lại các lợi ích như xác thực schema và migration.
- Chiến lược đồng bộ hóa của Reflect, Transactional Conflict Resolution, đơn giản, linh hoạt và mạnh mẽ, là một lựa chọn tốt để xây dựng các ứng dụng nhiều người chơi.
1 bình luận
Ý kiến trên Hacker News