Fast, durable, multi-protocol message queue and event streaming platform. Named queues, pub/sub topics, consumer groups, priority, DLQ, transactions, stream processing — one binary, zero dependencies.
$ kmq serve
Combines the best features from Kafka, RabbitMQ, NATS, Pulsar, and Redis Streams
Persistent FIFO queues with WAL storage, configurable ack timeout, visibility timeout, and automatic dead letter routing.
Pub/sub with partitioned streams, key-based ordering, multiple subscription modes (shared, exclusive, failover, key-shared).
Automatic partition assignment with range, round-robin, and sticky rebalancing. Heartbeat monitoring and session timeouts.
10 priority levels (0-9) with weighted fair scheduling or strict priority mode. Per-level sub-queues for isolation.
Timing wheel scheduler for delayed messages up to 7 days. Cron-like recurring schedules with cancel support.
Automatic DLQ routing after max retries. Inspect, replay, and purge operations. Reason tracking and breakdown.
Multi-queue atomic publish with begin/commit/rollback. Ensures all-or-nothing delivery across destinations.
Rewind to any timestamp or offset. Seek to earliest, latest, or specific position. Time index for fast lookups.
JSON Schema, Avro, Protobuf validation. Backward/forward/full compatibility checks. Auto-register on publish.
Built-in map, filter, aggregate, windowing (tumbling, sliding, session). Stateful processing with checkpointing.
Source and sink connectors for PostgreSQL, HTTP webhooks, and files. Batch processing with retry and error handling.
Prometheus metrics with per-queue, per-topic, per-consumer granularity. Built-in admin dashboard web UI.
Connect from any language, any framework, any device
Get started in seconds with any protocol
Publish and consume messages with simple HTTP requests. No client library needed.
Full programmatic control with the native Koder Lang client. Type-safe, zero-copy, maximum performance.
One binary that replaces your entire messaging stack
| Feature | Koder MQ | Kafka | RabbitMQ | NATS | Pulsar | Redis Streams |
|---|---|---|---|---|---|---|
| Named Queues | Yes | No | Yes | Yes | Yes | No |
| Partitioned Topics | Yes | Yes | No | Yes | Yes | No |
| Consumer Groups | Yes | Yes | No | Yes | Yes | Yes |
| Priority Queues | 10 levels | No | 255 | No | No | No |
| Delayed Messages | Yes | No | Plugin | No | Yes | No |
| Dead Letter Queue | Auto | No | Yes | No | Yes | No |
| Transactions | Yes | Yes | Yes | No | Yes | Yes |
| Schema Registry | Built-in | Separate | No | No | Built-in | No |
| Stream Processing | Built-in | Streams | No | No | Functions | No |
| AMQP | 0.9.1 | No | 0.9.1 | No | No | No |
| MQTT | 5.0 | No | Plugin | Yes | No | No |
| HTTP/REST | Yes | Proxy | Plugin | Yes | Yes | No |
| gRPC | Yes | No | No | No | Yes | No |
| WebSocket | Yes | No | Plugin | Yes | Yes | No |
| Single Binary | Yes | JVM | Erlang | Yes | JVM | Yes |
| No External Deps | Yes | ZK/KRaft | Yes | Yes | ZK/BK | Yes |
Manage everything from the command line
Get started with Koder MQ in seconds
$ kmq serve --config production.toml