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:

Term What it means
Train A pipeline that follows a route, always stays on the tracks, always reaches a destination
Route The path a train follows: a sequence of junctions (IRoute<TIn, TOut>)
Junction A point on the route where work happens (Junction<TIn, TOut>). The train either continues right (success) or switches left (failure)
Right track Success path. The train continues to the next junction
Left track Failure path. The train bypasses remaining junctions and arrives with the exception
Memory The cargo the train carries between junctions, wired automatically by type
ServiceTrain A 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.

Layer What it adds
Core Typed pipelines, error propagation, compile-time analyzer
Effect Execution metadata, dependency injection, pluggable effect providers
Mediator Decoupled dispatch: route by input type instead of direct injection
Scheduling Cron/interval scheduling, retries, dead-letter handling, job dependencies
API Auto-generated GraphQL via HotChocolate
Dashboard Blazor monitoring UI that mounts into your existing app

Where to go


Back to top

Trax - A .NET framework for Railway Oriented Programming with Effects, Scheduling, and more