• โปรโตคอลสตรีมมิงแบบทนทานบน 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 ปี

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น