Skip to content

queue-tiSelf-hosted distributed message queue backed by PostgreSQL

No Kafka, Redis, or RabbitMQ. If you have Postgres, you have a production-ready queue.

Quick Start ​

bash
docker-compose up

Access the admin UI at http://localhost:8081 (login: admin / secret).

Why queue-ti? ​

queue-ti is designed for teams who want reliable, observable message processing without the operational overhead of a separate queue broker. It features:

  • Built-in dead-letter queues β€” Failed messages are automatically moved to a DLQ for manual inspection and requeue
  • Per-topic schema validation β€” Avro schemas enforce payload contracts at enqueue time
  • Fine-grained JWT grants β€” Control access per topic, topic pattern, or consumer group
  • Throughput throttling β€” Per-topic rate limits using PostgreSQL token-bucket algorithm
  • Consumer groups β€” Multiple independent systems process the same messages in parallel
  • Message keys & upsert β€” Deduplication and idempotent enqueue operations
  • Automatic reapers β€” Expiry reaper marks old messages; delete reaper cleans up disk space
  • Multi-language clients β€” Go, Node.js, and Python with auto-reconnect and token refresh

Core Features ​

  • gRPC API β€” High-performance queue operations (enqueue, dequeue, acknowledge, nack) over gRPC
  • HTTP Admin API β€” REST endpoints for queue inspection, management, user/grant administration, and schema configuration
  • Topic-based routing β€” Multiple independent queues share a single PostgreSQL table, partitioned by topic
  • Message keys β€” Optional deduplication keys allow upsert semantics
  • Automatic retries β€” Failed messages are automatically retried up to a configurable limit
  • Dead-letter queue β€” Messages that exhaust their retry limit are automatically promoted to <topic>.dlq
  • Message TTL β€” Messages expire after a configurable duration
  • Contention-free dequeue β€” Uses FOR UPDATE SKIP LOCKED for lock-free concurrent consumption
  • JWT authentication β€” Optional JWT-based auth with user accounts, role-based access, and per-topic grants
  • Avro schema validation β€” Optional per-topic Avro schema registration; payloads validated at enqueue time
  • Per-topic configuration β€” Override retry count, TTL, queue depth limits, and throughput caps per topic via HTTP API or admin UI
  • Throughput throttling β€” Optional per-topic message rate limits (messages/second) enforced at dequeue time
  • Admin UI β€” Angular web interface for message inspection, manual enqueue, DLQ requeue, and topic management
  • Prometheus metrics β€” Real-time counters and gauges (/metrics endpoint, unauthenticated)
  • Client libraries β€” Go, Node.js, and Python with async-first design, auto-reconnection, and token refresh