Redrive Docs
Docs: Exchanges & topology

Exchanges & topology

Browse exchanges and bindings, and see how a vhost routes messages.

The Exchanges screen lists the exchanges in the selected vhost, and each exchange has a page with its rates and bindings. Topology draws the whole vhost as a graph.

The exchange list

The chips group exchanges by MassTransit naming convention. Their counts cover every exchange in scope, not only the loaded page:

Chip Matches
All Every exchange
Message types Names with a :, such as Shop.Orders:SubmitOrder
Endpoints Exchanges with the same name as a queue in the vhost
Faults Names starting with MassTransit:Fault
Other Exchanges that fit none of the above
Built-in amq.* exchanges and the default exchange

Each row shows the type, the number of destinations, a two-minute sparkline of incoming messages, and the rates in and out. Built-in exchanges sort last. The list pages at 50 and polls every five seconds.

Create an exchange

Click New exchange and fill in the name, vhost, type, the Durable, Auto-delete and Internal switches, and any arguments. The type list comes from the broker, plugin types included. Argument values that read as numbers or true and false are sent as such, since RabbitMQ checks argument types.

Redrive refuses a name that already exists in the vhost and names starting with amq.. The new exchange opens once it’s created.

The exchange page

The header carries tags for the type, durability, auto-delete, internal and built-in flags. On Pro, an exchange named after an installed contract also gets a Contract tag that opens the type in Contracts.

The page shows tiles for rate in, rate out, destinations and sources, a rates chart with the 1m, 15m or 1h range, and the definition and arguments. Publish to exchange opens Publishing with the exchange as the target, or in MassTransit mode when the exchange belongs to a contract. Internal exchanges and the default exchange have no such button.

The ⋯ menu holds Show in topology, Copy name and Delete exchange…. Delete asks you to type the exchange name and says how many bindings go with it; hold Shift to skip that. Built-in exchanges have no menu and can’t be deleted.

The default exchange shows as (AMQP default). Every queue is bound to it under its own name, so its page has no bindings to add or remove. Use Publish to queue on a queue page to publish through it.

Bindings

The Bindings card on an exchange page lists bindings Into this exchange and From this exchange, as a graph or a table. Redrive remembers which view you used last. The graph follows destination exchanges one hop further to their queues, since MassTransit routes a message type through each consumer’s endpoint exchange. Click a node to open its page.

Add binding adds a binding from this exchange to a queue or another exchange in the same vhost. The routing key field suggests keys already bound on the exchange. Fanout and headers exchanges ignore routing keys, so the field is hidden there, and a headers exchange gets an arguments table starting with x-match instead.

Unbind removes a binding straight away, without asking. Bindings into a queue are also on the queue’s Overview tab; see Queues & messages.

Topology

Topology draws one vhost at a time, with exchanges and queues as nodes and bindings as edges. It follows the vhost in the sidebar. With All vhosts selected, a picker next to the title chooses the vhost to draw, starting with the one that has the most queues. The graph polls every five seconds and is read-only, so a read-only broker account can use it.

Control What it does
Group by service On by default. Puts each service’s endpoint exchange and queue, and its _error and _skipped queues, in one labelled box.
Errors Dims everything except services holding failed messages and every exchange that routes into them.
System Shows the amq.* exchanges and the default exchange, which are hidden by default.
Search Dims everything except the matches and their direct neighbours.

Queues holding failed messages are red (amber for skipped), and edges into them are dashed red. Fault exchanges read as the type they carry: MassTransit:Fault--Shop.Orders:SubmitOrder-- shows as Fault<SubmitOrder>.

Click a node to select it. A panel opens with its type, counts and neighbours, and a button to open its page. Right-click a node for an Open queue or Open exchange item. The selection is part of the URL, so Show in topology on a queue or exchange page opens the graph with that node selected.

A vhost with more than 500 exchanges and queues doesn’t draw on its own. The canvas shows the count and a Draw all button. Search instead to draw only the matches and their neighbours.