Architectural and runtime observability for DSoftStudio.Mediator — directly inside VS Code.
See every request handler, behavior, pre/post-processor, notification dispatch, and stream — wired into the source it came from, with live profiling stats and one-click navigation.

Screenshot: tree, detail panel, and interactive graph of a real CQRS solution.
Why Pipeline Explorer?
Mediator-heavy applications grow fast and become hard to reason about:
- Hidden behaviors silently wrap every dispatch — validation, logging, retry, transactions — and nobody remembers the chain.
- Nested mediator calls inside handlers turn a single endpoint into a dozen invocations the IDE won't show you.
- Notification fan-out scatters business effects across projects; tracing them needs grep and luck.
- Performance bottlenecks hide behind generic pipeline traces — which behavior is the slow one, on which request?
- Cross-project handlers live in
*.Application, dispatched from *.Api, decorated in *.Infrastructure — no single source file tells the story.
Pipeline Explorer gives you a real-time architectural and runtime view of the mediator graph as it exists in your codebase, with the source under one click and live timing data under another.
Example workflow
- Open the controller that dispatches
CheckLicenseCommand.
- Jump to the command type from the tree — instant.
- Inspect the behavior chain: validation → caching → authorization → handler. Open any of them.
- Visualize the request graph: see the notification fan-out and the nested
RegisterGrantCommand that fires inside the handler.
- Start runtime profiling. Issue requests against your local API.
- Spot a tail-heavy validation behavior at p99 — 380 ms while the median is 4 ms.
- Click the behavior in the profiler panel — jumps to source. Fix it. Re-run.
That loop — understand → navigate → measure → fix — without ever leaving the editor.
Capabilities
Pipeline tree explorer
Every request pipeline grouped by kind — Commands, Queries, Notifications, Streams — with at-a-glance badges (Command · PassThrough, Query · Full, notification fan-out count, stream kind). Filter by section, search across types, behaviors, and call sites.
Click-to-source navigation
Every node knows where it lives. Click a handler — opens the file at the right line. Click a behavior — same. Click a call site — opens the controller / endpoint that dispatched the request. No manual Ctrl+T hunt.
Interactive pipeline graph
Per-pipeline visualization of pre-processors → behaviors → handler → post-processors, with notification fan-out and nested mediator calls drawn inline. Pan, zoom, click any node to navigate or inspect.
Runtime profiler
Live handler and behavior timings — p50 / p95 / p99 percentiles, error rates, tail-heavy detection. Snapshot, clear, export. The profiling hooks wire themselves into your application at compile time the moment the analyzer is loaded, so there is nothing to add to Program.cs. This is where the largest day-to-day ROI lives — pinpointing the one slow behavior in a dozen-deep chain takes seconds, not an afternoon of OpenTelemetry digging.

CQRS-aware view
Pipelines tagged automatically by interface (ICommand<>, IQuery<>, IRequest<>) so the tree groups them the way your codebase actually thinks. Dedicated icons distinguish reads from writes at a glance.
Zero-config discovery
Open a workspace with a .sln and the extension scans your projects, finds every IRequestHandler / IStreamRequestHandler / INotificationHandler, and builds the tree. No registration, no attributes, no MSBuild hooks beyond the analyzer NuGet you already reference.
Requirements
- VS Code 1.85+
- .NET 8 or 10 in the target solution
- DSoftStudio.Mediator referenced by the project(s) you want to inspect
- The bundled server auto-spawns; no manual install needed. macOS, Linux, and Windows are supported.
Getting started
- Install the extension from the Marketplace.
- Open a workspace containing a
.sln that references DSoftStudio.Mediator. The Pipeline Explorer view appears in the Activity Bar.
- Click
Refresh if the tree is empty — discovery runs on solution-open and on demand.
- Activate your license — open
Mediator: License Status from the Command Palette and paste your activation token, or set mediator.licenseKey in settings.
- Enable runtime profiling (optional) — run
Mediator: Start Profiling from the Command Palette. The profiler is wired into your application automatically by the analyzer; no code change is required. Live stats flow into the Profiler panel.
Configuration
All settings live under mediator.* in your User or Workspace settings.
| Setting |
Default |
Purpose |
mediator.licenseKey |
empty |
Activation token from the pricing portal |
mediator.diagnosticsEnabled |
true |
Toggle Roslyn analyzers / source generators emitted by the package |
mediator.showPipelineMode |
true |
Show the PassThrough / Full / BehaviorsOnly badge in the tree |
mediator.showNestedOperations |
true |
Render nested mediator dispatches inside the parent graph |
mediator.maxBufferedEvents |
2000 |
Profiling event buffer cap (FIFO) |
mediator.tailHeavyMinP99Ms |
20 |
Floor for tail-heavy detection to avoid sub-ms noise |
mediator.serverPath |
empty |
Override the bundled server location (advanced) |
Open the full settings panel from the Activity Bar gear icon.
Commands
All commands live under the Mediator: category in the Command Palette (Ctrl+Shift+P):
| Command |
What it does |
Refresh Pipelines |
Re-scan the solution; resets cached profiling data |
Show Pipeline Graph |
Open the interactive graph view |
Show Dashboard |
Open the project-level overview |
Start / Stop Profiling |
Attach or detach the runtime profiler |
Profiling Snapshot |
Capture a point-in-time snapshot of the current session |
Clear Profiling Data |
Drop all in-memory profiling state |
Show Profiler |
Open the profiler panel |
Toggle Profiler View Mode |
Switch between aggregated and per-handler view |
License Status |
Open the activation panel |
Stop Server |
Shut down the bundled server process |
- Solution-rooted only. Standalone
.csproj workspaces are not yet auto-detected; open the containing folder with the .sln.
- In-process profiler only. Out-of-process attach is on the roadmap.
- Single solution per window. Multi-solution workspaces show only the first
.sln discovered.
- Light-weight type resolution. Generic constraint chains and conditional registrations may not always resolve to a concrete handler; the analyzer warns when ambiguous.
We track these — and accept bug reports — at the GitHub repository.
Licensing
Pipeline Explorer is commercial software. A free trial is available so you can validate the workflow against your real codebase before purchasing. After the trial window, a valid activation token is required to continue using the extension.
Copyright (c) 2026 DSoftStudio. All rights reserved.
PROPRIETARY AND CONFIDENTIAL
This source code is the exclusive property of DSoftStudio.
Unauthorized copying, reproduction, modification, distribution,
or use of this software, in whole or in part, via any medium,
is strictly prohibited without the express prior written
permission of DSoftStudio.
For licensing inquiries: licensing@dsoftstudio.com
DSoftStudio Mediator is a registered product of DSoftStudio. Visual Studio Code is a trademark of Microsoft Corporation.