9 điểm bởi xguru 11 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • 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