- Giao thức streaming bền vững dựa trên HTTP, truyền dữ liệu ổn định tới trình duyệt web, thiết bị di động và client native
- Hỗ trợ cách tiếp cận đơn giản và đã được kiểm chứng để tạo và tiêu thụ stream có đảm bảo thứ tự và có thể phát lại
- Khả năng tiếp tục dựa trên offset cho phép nhận tiếp từ điểm bị gián đoạn ngay cả khi kết nối bị ngắt
- Có thể dùng cho nhiều kịch bản thời gian thực như streaming hội thoại AI, đồng bộ cơ sở dữ liệu, chỉnh sửa cộng tác, event sourcing, thực thi workflow
- Giải quyết vấn đề kết nối không ổn định của WebSocket và SSE hiện có
- Thiết kế refresh-safe giúp tiếp tục tại cùng vị trí ngay cả sau khi chuyển tab hoặc chuyển ứng dụng sang nền
- Chia sẻ stream dựa trên URL cho phép nhiều người dùng cùng xem một stream đồng thời
- Cấu trúc thân thiện với CDN giúp giảm chi phí, có thể xử lý hàng triệu kết nối đồng thời từ một origin duy nhất
- Hỗ trợ đồng bộ nhiều thiết bị và nhiều tab
- Đặc điểm của giao thức
- Universal: Có thể sử dụng trong mọi môi trường nơi HTTP hoạt động
- Simple: Dựa trên HTTP tiêu chuẩn, không cần giao thức tùy biến riêng
- Resumable: Hỗ trợ đọc và tiếp tục dựa trên offset
- Real-time: Có thể tailing thời gian thực bằng chế độ Long-poll và SSE
- Economical: Đảm bảo khả năng mở rộng hiệu quả thông qua cache CDN
- Composable: Có thể xây dựng tầng trừu tượng cấp cao hơn bên trên (ví dụ: engine đồng bộ Postgres thời gian thực của Electric)
- Đặc tính hiệu năng
- Độ trễ dưới 15ms, xử lý hàng triệu subscriber đồng thời, đảm bảo khả năng scale ngang
- Cấu trúc URL dựa trên offset giúp tối đa hóa việc tận dụng cache CDN
- Quan hệ với các hệ thống streaming backend
- Bổ sung cho các hệ thống nhắn tin giữa server như Kafka, RabbitMQ, Kinesis
- Durable Streams phụ trách tầng truyền tải tới client
- Server thực hiện xác thực và chuyển đổi dữ liệu, còn Durable Streams fan-out chúng qua HTTP
- Khác biệt với SSE và WebSocket
- SSE/WebSocket chỉ cung cấp kết nối đơn giản, còn Durable Streams cung cấp kiến trúc dựa trên log bền vững
- Kết hợp các ưu điểm của log tiêu chuẩn như tiếp tục theo offset, phát lại lịch sử, hỗ trợ nhiều reader
- Tính linh hoạt trong triển khai
- Chỉ cần triển khai HTTP API, kho lưu trữ bền vững và quản lý offset là có thể xây dựng server bằng bất kỳ ngôn ngữ nào
- Cung cấp server tham chiếu Node.js cùng công cụ kiểm thử tính tương thích và benchmark
- Các trường hợp sử dụng chính
- Đồng bộ cơ sở dữ liệu thời gian thực: streaming thay đổi của Postgres tới web và di động
- Hệ thống event sourcing: khôi phục trạng thái dựa trên log sự kiện bền vững
- Streaming hội thoại AI: có thể tiếp tục luồng token của LLM mà không bị gián đoạn
- Giao thức theo giấy phép Apache 2.0 đã được đội ngũ Electric SQL kiểm chứng trong dịch vụ thực tế suốt 1,5 năm
Chưa có bình luận nào.