- โปรโตคอลสตรีมมิงแบบทนทานบน HTTP สำหรับส่งข้อมูลอย่างเสถียรไปยังเว็บเบราว์เซอร์ มือถือ และไคลเอนต์เนทีฟ
- รองรับวิธีการที่เรียบง่ายและผ่านการพิสูจน์แล้ว สำหรับการสร้างและใช้งานสตรีมที่ รับประกันลำดับและเล่นซ้ำได้
- มี ความสามารถในการกลับมาทำงานต่อแบบอิงออฟเซ็ต ทำให้แม้การเชื่อมต่อหลุดก็สามารถรับต่อจากจุดที่หยุดได้
- ใช้งานได้กับสถานการณ์แบบเรียลไทม์หลากหลาย เช่น การสตรีมบทสนทนา AI, การซิงก์ฐานข้อมูล, การแก้ไขร่วมกัน, event sourcing, การรันเวิร์กโฟลว์
- แก้ปัญหา ความไม่เสถียรของการเชื่อมต่อ ที่มีอยู่ใน WebSocket และ SSE
- ออกแบบแบบ refresh-safe ให้กลับมาทำงานต่อที่ตำแหน่งเดิมได้แม้สลับแท็บหรือให้แอปทำงานเบื้องหลัง
- แชร์สตรีมผ่าน URL ได้ ทำให้ผู้ใช้หลายคนรับชมสตรีมเดียวกันพร้อมกันได้
- โครงสร้างที่เป็นมิตรกับ CDN เพื่อลดต้นทุน ช่วยรองรับการเชื่อมต่อพร้อมกันระดับหลายล้านจาก origin เดียวได้
- รองรับการซิงก์ หลายอุปกรณ์และหลายแท็บ
- คุณสมบัติของโปรโตคอล
- Universal: ใช้งานได้ในทุกสภาพแวดล้อมที่ HTTP ทำงานได้
- Simple: อิงมาตรฐาน HTTP ไม่ต้องใช้โปรโตคอลแบบกำหนดเองเพิ่มเติม
- Resumable: รองรับการอ่านและกลับมาทำงานต่อแบบอิงออฟเซ็ต
- Real-time: รองรับการ tail แบบเรียลไทม์ด้วยโหมด Long-poll และ SSE
- Economical: ขยายระบบได้อย่างมีประสิทธิภาพผ่าน CDN caching
- Composable: สามารถใช้สร้างชั้นนามธรรมระดับบนได้ เช่น เอนจินซิงก์ Postgres แบบเรียลไทม์ของ Electric
- ลักษณะด้านประสิทธิภาพ
- ค่าหน่วงต่ำกว่า 15ms, รองรับผู้ติดตามพร้อมกันหลายล้านราย, รองรับการขยายแบบแนวนอน
- โครงสร้าง URL แบบอิงออฟเซ็ตช่วยให้ใช้ CDN cache ได้อย่างเต็มประสิทธิภาพ
- ความสัมพันธ์กับระบบสตรีมมิงฝั่งแบ็กเอนด์
- ช่วยเสริมระบบรับส่งข้อความระหว่างเซิร์ฟเวอร์ เช่น Kafka, RabbitMQ, Kinesis
- Durable Streams ทำหน้าที่เป็นชั้นการส่งข้อมูลไปยังไคลเอนต์
- เซิร์ฟเวอร์ทำหน้าที่ด้านการยืนยันตัวตนและการแปลงข้อมูล ส่วน Durable Streams จะกระจายข้อมูลนั้นต่อผ่าน HTTP
- ความแตกต่างจาก SSE และ WebSocket
- SSE/WebSocket ให้เพียงการเชื่อมต่อแบบง่าย ๆ ขณะที่ Durable Streams มี โครงสร้างแบบ durable log
- ผสานข้อดีของล็อกมาตรฐาน เช่น การกลับมาทำงานต่อด้วยออฟเซ็ต การเล่นประวัติย้อนหลัง และการรองรับผู้อ่านหลายราย
- ความยืดหยุ่นในการนำไปใช้งาน
- หากทำ HTTP API, ที่เก็บข้อมูลแบบทนทาน และการจัดการออฟเซ็ตได้ ก็สามารถสร้างเซิร์ฟเวอร์ด้วยภาษาใดก็ได้
- มี Node.js reference server และเครื่องมือสำหรับ การทดสอบความสอดคล้องและเบนช์มาร์ก ให้
- กรณีใช้งานหลัก
- การซิงก์ฐานข้อมูลแบบเรียลไทม์: สตรีมการเปลี่ยนแปลงจาก Postgres ไปยังเว็บและมือถือ
- ระบบ event sourcing: กู้คืนสถานะจาก event log แบบทนทาน
- การสตรีมบทสนทนา AI: สามารถกลับมารับต่อสตรีมโทเค็นของ LLM ได้โดยไม่สะดุด
- เป็นโปรโตคอลภายใต้ไลเซนส์ Apache 2.0 ที่ ทีม Electric SQL ใช้งานจริงและพิสูจน์แล้วตลอด 1.5 ปี
ยังไม่มีความคิดเห็น