Skip to content

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

ShapeRepresents
RectangleService
HexagonMessage type
CircleHandler

Edge Types

StyleRepresents
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.

Released under the MIT License.