Enable the stream plugin: rabbitmq-plugins enable rabbitmq_stream
Declare a stream queue: set x-queue-type=stream; optionally set x-max-length-bytes and x-stream-max-segment-size-bytes to control on-disk retention
Use the RabbitMQ Stream protocol client (not AMQP 0-9-1) for offset-aware consumption; connect on the stream port (default 5552)
Specify an offset at subscription time: first (beginning of stream), last (tail), next (only new messages), an absolute offset integer, or a timestamp
Track your consumer offset by calling storeOffset() periodically with a consumer name; the broker persists this offset as non-message data in the stream itself
Resume after restart by subscribing with offset=storedOffsetOrNext using your consumer name
Known gotchas
Stream queues are append-only and do not remove consumed messages; data is retained until size or time retention limits are hit — size your disk accordingly and set x-max-length-bytes explicitly
Standard AMQP 0-9-1 consumers on a stream queue always read from the tail (offset=next) and cannot replay historical messages; use the dedicated stream protocol or the stream plugin's AMQP extension for offset control
Multiple consumers with the same consumer name share the same stored offset; use distinct names per consumer group to maintain independent offsets
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