Learning Path
This file is the guided entry point for studying the repository as if it were a small self-paced course.
Read these in order
docs/learning/00-start-here.mddocs/glossary.mddocs/learning/01-big-picture.mddocs/learning/02-core-domain.mddocs/learning/03-matching-flow.mddocs/learning/06-visual-guide.mddocs/learning/07-why-this-design.mddocs/learning/08-performance-bridge.mddocs/engine-performance.mddocs/performance.mddocs/learning/05-guided-exercises.md
If you ever feel lost, go back one step instead of forcing yourself forward.
Recommended study loop
- Read one chapter slowly.
- Write down unfamiliar words.
- Look them up in docs/glossary.md.
- Open the referenced source files.
- Run the related tests or benchmark.
- Trace one concrete scenario end to end.
- Write down what state changed and why.
Suggested pacing
- Do not try to finish the whole repo in one sitting.
- Stop at the point where the words stop feeling obvious.
- Explain the chapter back to yourself in plain English.
- Only move on when you can describe the chapter without copying the code.
Best first live exercises
- Open
src/order.rsand identify the difference betweenNewOrderRequestandOrder. - Run
cargo test matching -- --nocapture. - Open
src/matching.rsand narrate one submit path. - Run
cargo bench --bench throughput submit_resting_limit_orders_minimal_no_invariants -- --sample-size 10. - After that, open the learning terminal in
`web/`and compare the UI state with the core snapshots and events.
What this learning path is trying to teach
- what an order book is before asking you to read matching code
- how to read a deterministic engine without getting lost in implementation detail
- how book state changes during submit, match, rest, and cancel
- how to reason about engine hot paths and failed performance experiments
- how to keep a core library clean while still making it usable in applications
- how to extend the project without accidentally smearing responsibilities across layers
What this learning path is not trying to do
- Teach every Rust language feature from scratch.
- Teach networking before the engine itself makes sense.
- Pretend this is easy to absorb in one pass.