Enable the RabbitMQ Streams plugin: rabbitmq-plugins enable rabbitmq_stream rabbitmq_stream_management
Create a superstream using the management CLI or stream client: rabbitmq-streams add_super_stream orders --partitions 3 creates streams orders-0, orders-1, orders-2 and a routing exchange
Publish using a producer with routing key hashing: the superstream exchange routes each message to a partition based on a hash of the routing key, ensuring per-key ordering across partitions
On the consumer side, use the super-stream consumer API with a ConsumerGroup name set; the client library automatically distributes partition ownership across consumer group members
Configure x-stream-offset=first or x-stream-offset=next on each partition consumer to set the starting read position; use stored offsets for resumable consumption
Monitor partition consumer distribution via GET /api/stream/consumers and confirm each partition is assigned to exactly one active consumer
Known gotchas
Superstream partition count cannot be changed after creation; plan partition count based on expected peak parallelism since adding partitions requires recreating the superstream
The routing key used for publishing determines which partition receives the message; if all messages use the same routing key, all traffic lands on one partition, defeating parallelism
Superstream consumer groups rebalance partition ownership when members join or leave; during rebalance there is a brief window where a partition has no active consumer — design consumers to tolerate this gap
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp