Event-driven trading platform with gRPC services, Kafka event flow, and PostgreSQL persistence.
sequenceDiagram
participant Client
participant Gateway
participant OrderIngest
participant Risk
participant Ledger
participant Kafka
participant Matching
participant MarketData
Client->>Gateway: POST /orders
Gateway->>OrderIngest: Submit order
OrderIngest->>Risk: PreTradeCheck (gRPC)
Risk-->>OrderIngest: Allowed/Denied
OrderIngest->>Ledger: ReserveBalance (gRPC)
Ledger-->>OrderIngest: Reserved
OrderIngest->>Kafka: orders.accepted
Kafka->>Matching: orders.accepted
Matching->>Kafka: trades.executed
Kafka->>Ledger: trades.executed
Kafka->>MarketData: trades.executed
Ledger->>Kafka: ledger.entries, balances.updated
make dev-startmake dev-verifymake dev-test
Trader UI (React/Vite):
cd web && npm install && npm run devOpen http://localhost:5173 — demo@example.com / demo123.
Compose UI: http://localhost:3000 (service web).
Run all tests:
./scripts/test-full.shStart with docs/README.md. It identifies the authoritative
source for runtime topology, HTTP/gRPC contracts, events, migrations, and local
operations. ROADMAP.md is the only active project plan.