Skip to content

Message Topology ​

The Topology tab of the Messaging Explorer visualizes how messages flow between services in your Wolverine deployment. It answers: "Which services produce this message, and which services handle it?"

CritterWatch Message Topology — message routing across services showing source service, message type, broker, and destination service

View modes ​

A toggle at the top switches between four renderings of the same data; Table is the default:

  • Table — a sortable, filterable row-per-route list.
  • Graph — a force-directed graph.
  • Flow — a Sankey diagram where each flow's width is its throughput volume, so the heaviest paths stand out.
  • Architecture — a layered, system-level view.

In the graph views, nodes are services (rendered as circles) and brokers (rendered as a white tile carrying the transport's tech icon — RabbitMQ, Kafka, Azure Service Bus, etc.). Message types ride on the edges between them, not as their own nodes. In the Table view, brokers likewise show as a tech icon next to the server name.

Message type detail ​

Clicking a message-type row (Table) or an edge/node (graphs) opens the Message Type Detail drawer. The Table rows and all graph views funnel into this one drawer, so the affordances below are reachable everywhere:

  • View in Workflow — jump straight to the Workflow screen scoped to this type ("where does this fit?").
  • Publishers (subscribing endpoints) — the services + endpoint URIs that publish this type; click a service to open it.
  • Consumers (handlers) — the services and handler classes that consume it; View Handler Details opens the handler-chain detail page with the full generated source, middleware chain, and per-endpoint sticky routing.
  • Causation Chain — the handlers that produce or consume this type, when it participates in a runtime-observed cascade.

The full generated source code for a handler lives on the handler-chain / message-type detail pages, not in this drawer. Reach it via View Handler Details or from the Messages catalog.

Causation chains ​

For messages published while handling another message, CritterWatch reconstructs the cascade from runtime-observed causation, e.g.:

BookTripCommand → [TripBookedEvent, PaymentRequestedEvent]
PaymentRequestedEvent → [PaymentProcessedEvent]
PaymentProcessedEvent → [TripConfirmedEvent, EmailNotificationQueued]

These links are discovered at runtime as messages are processed and reported back to CritterWatch.

Filtering ​

Filter the topology by:

  • Service — show only connections involving a specific service
  • Message Type — highlight a specific message type and its connections
  • Brokers — show only messages flowing over specific brokers

Modular Monolith View ​

For modular monolith architectures where multiple handlers within the same process handle the same message type, CritterWatch displays "sticky handler" visualization — each handler appears as a distinct node even when they reside in the same service. This makes it immediately clear when one handler for a shared event is healthy while another is failing.

Free for read-only monitoring. A commercial license is required for administrative actions and the MCP server.