Trax is built around one thing: the train, a class that does one piece of business work as a
chain of small steps called junctions. Everything else in Trax is a way to use that same class.
The database records every run of it. The mediator, the scheduler and workers decide when and
where it runs. The GraphQL API and the operations console let a client or an operator call it and
watch it. A state machine walks a user through a longer process and runs trains along the way. You
write the train once, and each of these attaches to it without changing it.
┌──────────────────────────────┐ your code ─────────────►│ │ a GraphQL client ──────►│ a train │───► a run record the scheduler ─────────►│ junction → junction → ... │ (when, how it ended, a worker process ──────►│ │ which step failed, why) a state machine ───────►│ │ │ └──────────────────────────────┘ ▼ the operations console
The Glossary gives each Trax name its plain equivalent. The tables
below list what Trax does, grouped the way the book teaches it. Each row names the
chapter that builds it in a real application, the page that explains it, and the package to
install (Packages has the full list).
Write the work
Capability
In plain words
Learn it
Understand it
Package
Trains and junctions
One operation as typed steps; a failing step stops the rest and the caller gets the exception.