• ติดตั้งด้วยไฟล์ SQL เพียงไฟล์เดียว และทำงาน (tick) ได้ด้วย pg_cron เท่านั้น
  • คิวข้อความที่ฝังอยู่ใน Postgres ซึ่งนำ สถาปัตยกรรม PgQ จากยุค Skype มาสร้างใหม่ด้วย PL/pgSQL ล้วน ๆ ทำให้ใช้งานได้ทันทีบน managed Postgres โดยไม่ต้องมี C extension หรือ external daemon
  • กำจัดปัญหาเรื้อรังของคิวแบบ SKIP LOCKED อย่าง การสะสมของ dead tuple และภาระของ VACUUM ได้ตั้งแต่ต้นทาง ด้วย batch แบบอิง snapshot + การหมุนตารางด้วย TRUNCATE จึงไม่มีประสิทธิภาพตกแม้รันต่อเนื่องหลายเดือน
  • โครงสร้างแบบ shared event log + เคอร์เซอร์แยกอิสระตามแต่ละคอนซูเมอร์ คล้าย Kafka topic รองรับ fan-out แบบเนทีฟ — ผู้ติดตามหลายรายรับทุกอีเวนต์ได้อย่างอิสระโดยไม่ต้องทำสำเนาข้อมูล
  • เลเทนซีการส่งต่อแบบ end-to-end ที่ค่าตั้งต้นอยู่ที่ ประมาณ 1-2 วินาที (ช่วง tick + ช่วง poll) ส่วนการเรียก send/receive/ack แต่ละครั้งอยู่ในระดับ ไมโครวินาที
  • จากผลเบนช์มาร์กเบื้องต้น การ insert ผ่าน PL/pgSQL ทำได้ราว ~86k ev/s, การอ่านฝั่งคอนซูเมอร์ ~2.4M ev/s, และในการทดสอบต่อเนื่อง 30 นาที dead tuple เพิ่มขึ้นเป็นศูนย์
  • ใช้ SQL API อย่าง pgque.send(), pgque.receive(), pgque.ack() จึงทำงานได้กับ Postgres driver ทุกตัวโดยไม่ผูกกับภาษา เช่น Python, Go, TypeScript
  • รองรับผู้ให้บริการ managed Postgres รายใหญ่ทั้งหมด เช่น RDS, Aurora, Cloud SQL, AlloyDB, Supabase, Neon โดยไม่ต้อง build เพิ่มหรือขอการอนุมัติจากผู้ให้บริการ
  • มี การแยกสิทธิ์ ในตัวตาม 3 บทบาท (pgque_reader, pgque_writer, pgque_admin) และไม่ต้องให้ผู้ใช้แอปพลิเคชันเป็น superuser
  • แม้ตัว PgQ เองจะผ่านการพิสูจน์ในโปรดักชันมานานกว่า 10 ปี ที่ระดับผู้ใช้หลายร้อยล้านคนใน Skype แต่ PgQue ในฐานะโปรดักต์ยังอยู่ช่วงเริ่มต้น (v0.1)
  • ไลเซนส์ Apache-2.0

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

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