Skip to content

Roadmap

RobustMQ AMQP already lets standard AMQP 0-9-1 clients (e.g. the RabbitMQ Java Client) run the core publish/consume/acknowledge flow end to end, while a number of capabilities common in the RabbitMQ ecosystem remain unimplemented. This page gives an honest snapshot of where things stand; see Protocol Support for the per-method breakdown and Compatibility & Limitations for the overall boundary.

Completed

CapabilityNotes
Connections & channelsLifecycle management, heartbeats, Channel.Flow
ExchangesAll four types — direct/fanout/topic/headers, plus exchange-to-exchange bindings
QueuesDeclare (with real passive counts), bind, purge, delete (with if-unused/if-empty)
Publish & consumeBasic.Publish/Get/Consume/Cancel
AcknowledgementBasic.Ack/Nack/Reject/Recover, automatic requeue on disconnect
Reliable publishingReal Publisher Confirms (acked only after persistence)
Exclusive consumptionexclusive is genuinely enforced
AuthenticationSASL PLAIN, sharing the unified user store
Shared consume groupsQueues reuse MQTT/NATS shared-consume-group infrastructure, supporting competing consumers and cross-node forwarding

In Progress / Planned

CapabilityNotes
ACL / operation authorizationCurrently no permission check after authentication; exchange/queue-level authorization is planned
TLS/SSLThe AMQP port currently only accepts plaintext TCP
Declare-argument enforcementPolicy arguments like x-message-ttl/x-expires/x-max-length/x-max-priority are currently stored but not acted on
Dead-letter queues (DLX)Rejected/discarded messages are currently deleted outright; forwarding to a dead-letter exchange is planned
Real durable/auto-delete semanticsPersistence behavior currently doesn't depend on the durable value; differentiating them is planned
Cross-node prefetchBasic.Qos across nodes is currently best-effort; strong consistency is planned
Transactions (Tx)Currently only replies with acknowledgement frames; real atomic-commit semantics or explicit deprecation is planned
AMQPLAINOnly SASL PLAIN is currently supported

How to Read the Current State

RobustMQ's AMQP implementation follows a "get the core message path solid first, then fill in the management plane" pace: publish, routing, consumption, and acknowledgement are already real semantics, while declare arguments (TTL/DLX/priority, etc.), fine-grained permissions, and transport encryption — the management-plane and edge capabilities — are still being planned. If your use case depends heavily on these, read Compatibility & Limitations first to assess the impact.

Further Reading

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀