Decisions
Architecture decision records: what was decided at each step, why, and what it costs. Each one ends with how the
decision is tested.
| ADR |
Decision |
Date |
| 0001 |
Spring Boot 4 and Maven |
2026-10-03 |
| 0002 |
Contracts and domain types |
2026-10-03 |
| 0003 |
Order book and limit matching |
2026-10-03 |
| 0004 |
Commands, market orders, cancel and modify |
2026-10-03 |
| 0005 |
Price bands, sessions, self-trade prevention and the kill switch |
2026-10-03 |
| 0006 |
Sequencer pipeline and simulated clock |
2026-10-03 |
| 0007 |
Journal, SBE codec and deterministic replay |
2026-10-04 |
| 0008 |
Local infrastructure with Docker Compose |
2026-10-04 |
| 0009 |
Exchange service: gateway, market data and recovery |
2026-10-04 |
| 0010 |
Simulated traders, Python SDK and the web market page |
2026-10-04 |
| 0011 |
Admin console: admin user, self-test, live simulation control, journal views |
2026-10-05 |
| 0012 |
Trading workspace and browser strategies |
2026-10-05 |
| 0013 |
Kafka event publisher: tail the durable event log, file checkpoint, ops-tool client |
2026-10-07 |
| 0014 |
Duplicate client order IDs, matching-rules versions, verified recovery |
2026-10-07 |
| 0015 |
Post-trade ledger and leaderboard |
2026-10-07 |
| 0016 |
Engine snapshots: journaled snapshot points, verified on restore and in the replay check |
2026-10-07 |
| 0017 |
Ops page and server-backed workspace panels |
2026-10-07 |
| 0018 |
Exchange rules as Cucumber scenarios |
2026-10-07 |
| 0019 |
Observability: Prometheus and Grafana |
2026-10-07 |
| 0020 |
Rate-limit tiers: people, users' bots, simulated traders |
2026-10-07 |
| 0021 |
Multi-arch images |
2026-10-07 |
| 0022 |
Journal archiving: gzip finished segments, keep every record |
2026-10-08 |
| 0023 |
A boxing-free order index; GC settings measured, not changed |
2026-10-08 |
New ADRs go in this folder as NNNN-short-title.md; add a row here and an entry under Decisions in mkdocs.yml.