Trax

Trax is a .NET framework for structuring business logic as typed pipelines. Each pipeline is a sequence of junctions where every junction has one job, typed input and output, and errors short-circuit automatically. Your configuration lives in Program.cs, your logic lives in pipelines.

New here? Start with the Getting Started guide.

The vocabulary

The website calls them "pipelines." The code calls them "trains." Same thing, different name — the entire framework uses a train metaphor:

TermWhat it means
TrainA pipeline — follows a route, always stays on the tracks, always reaches a destination
RouteThe path a train follows — a sequence of junctions (IRoute<TIn, TOut>)
JunctionA point on the route where work happens (Junction<TIn, TOut>). The train either continues right (success) or switches left (failure)
Right trackSuccess path — the train continues to the next junction
Left trackFailure path — the train bypasses remaining junctions and arrives with the exception
MemoryThe cargo the train carries between junctions, wired automatically by type
ServiceTrainA Train with equipment bolted on — execution tracking, logging, lifecycle management

A train never leaves the rails. It always reaches a destination — either the intended output (right) or an exception (left). You'll see these terms throughout the docs and the API surface.

Use only what you need

Each package adds one layer of capability. Stop at whatever layer solves your problem.

LayerWhat it adds
CoreTyped pipelines, error propagation, compile-time analyzer
EffectExecution metadata, dependency injection, pluggable effect providers
MediatorDecoupled dispatch — route by input type instead of direct injection
SchedulingCron/interval scheduling, retries, dead-letter handling, job dependencies
APIAuto-generated GraphQL via HotChocolate
DashboardBlazor monitoring UI that mounts into your existing app

Where to go