Message Topology
The Message Topology view provides a visual representation of how messages flow between services and handlers in your Wolverine deployment. It helps answer the question: "Which services produce this message, and which services handle it?"
Topology Graph
The main topology view renders a force-directed graph where:
- Nodes represent services, message types, and handlers
- Edges represent message flow (publishes → message type → handles)
Node Types
| Shape | Represents |
|---|---|
| Rectangle | Service |
| Hexagon | Message type |
| Circle | Handler |
Edge Types
| Style | Represents |
|---|---|
| Solid arrow | "publishes this message type" |
| Dashed arrow | "handles this message type" |
Interaction
- Pan — click and drag the background
- Zoom — scroll wheel or pinch
- Select node — click to highlight and open detail panel
- Pin node — double-click to pin in place
- Reset layout — button in toolbar
Message Type Detail
Clicking a message type node opens the detail panel showing:
Publishers
Services that publish this message type, with:
- Service name
- Handler method that publishes (if discoverable)
- Approximate publish rate (messages/hour)
Handlers
Services and handler methods that handle this message type:
- Service name
- Handler class and method name
- Average execution time
- Dead letter rate
- Last execution timestamp
Handler Source Code
For each handler, click View Source to see the generated source code that Wolverine produced for this handler chain. This shows the full generated class including:
- Middleware pipeline
- Pre/post processors
- Transaction handling
- Retry configuration
Causation Graph
For messages that are published as part of handling another message (causation chains), CritterWatch displays a mini causation graph showing the full cascade:
BookTripCommand → [TripBookedEvent, PaymentRequestedEvent]
PaymentRequestedEvent → [PaymentProcessedEvent]
PaymentProcessedEvent → [TripConfirmedEvent, EmailNotificationQueued]Causation links are discovered at runtime as messages are processed and reported back to CritterWatch.
Sankey Diagram
The Sankey view shows message flow as a Sankey diagram — a flow visualization where the width of each flow line represents throughput volume. This makes it immediately clear which message flows carry the most traffic and where volume is concentrated.
Filtering
Filter the topology graph by:
- Service — show only connections involving a specific service
- Message Type — highlight a specific message type and its connections
- Transport — show only messages flowing over a specific transport
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.
