- Cài đặt chỉ với một tệp SQL và chạy (tick) chỉ bằng pg_cron
- Hàng đợi thông điệp tích hợp trong Postgres tái hiện kiến trúc PgQ từ thời Skype bằng PL/pgSQL thuần, nên có thể dùng ngay trên managed Postgres mà không cần extension C hay daemon bên ngoài
- Loại bỏ tận gốc các vấn đề cố hữu của hàng đợi SKIP LOCKED là dead tuple tích tụ và tải VACUUM bằng batch dựa trên snapshot + xoay vòng bảng bằng TRUNCATE, nên vận hành nhiều tháng vẫn không suy giảm hiệu năng
- Cấu trúc nhật ký sự kiện dùng chung + con trỏ độc lập theo từng consumer tương tự Kafka topic, hỗ trợ fan-out gốc — nhiều subscriber có thể nhận độc lập toàn bộ sự kiện mà không cần sao chép dữ liệu
- Độ trễ truyền end-to-end ở cấu hình mặc định là ~1-2 giây (khoảng tick + khoảng poll), còn từng lệnh gọi send/receive/ack riêng lẻ ở mức micro giây
- Theo benchmark sơ bộ, insert bằng PL/pgSQL đạt ~86k ev/s, đọc phía consumer đạt ~2.4M ev/s, và trong bài test liên tục 30 phút số dead tuple tăng bằng 0
- Vì dựa trên SQL API như
pgque.send(), pgque.receive(), pgque.ack(), nên hoạt động với mọi driver Postgres bất kể ngôn ngữ như Python, Go, TypeScript
- Tương thích với toàn bộ các nhà cung cấp managed Postgres lớn như RDS, Aurora, Cloud SQL, AlloyDB, Supabase, Neon, không cần build riêng hay phê duyệt từ provider
- Tích hợp sẵn phân tách quyền hạn dựa trên 3 vai trò (pgque_reader, pgque_writer, pgque_admin), không cần cấp superuser cho người dùng ứng dụng
- Bản thân PgQ đã được kiểm chứng production hơn 10 năm ở quy mô hàng trăm triệu người dùng thời Skype, nhưng PgQue với tư cách sản phẩm vẫn đang ở giai đoạn đầu (v0.1)
- Giấy phép Apache-2.0
1 bình luận
Đúng là một DB all-in-one