@@ -4,30 +4,40 @@ Spatiad is an open-source spatial dispatch engine for real-time fleets.
44
55## What this repository contains
66
7- - A Rust single-binary engine foundation
8- - H3-oriented spatial indexing crate scaffold
9- - HTTP + WebSocket API scaffold for dispatcher/driver flows
10- - pnpm workspace with SDK, Express integration example, and docs package
7+ - Rust multi-crate backend (dispatch core, API, WS protocol, binary runtime)
8+ - HTTP + WebSocket dispatch API
9+ - H3-oriented geospatial matching foundation
10+ - TypeScript monorepo (SDK, Express plugin, example app)
11+ - Deployment assets (Docker, docker-compose, Kubernetes, systemd)
1112
1213## Current status
1314
14- Initial implementation scaffold is in place. The next milestone is wiring the end-to-end dispatch loop :
15+ Production-ready baseline is implemented with :
1516
16- 1 . driver location updates
17- 2 . nearest candidate lookup
18- 3 . offer timeout/radius expansion
19- 4 . websocket reconnect replay for pending offers
20- 5 . match lock-in and webhook callback
17+ 1 . End-to-end dispatch lifecycle (offer creation, expiration, re-offer, match lock-in)
18+ 2 . Job status and job event timeline APIs with cursor pagination
19+ 3 . Dispatcher and driver token-based authentication
20+ 4 . Dispatch rate limiting and WS reconnect guard
21+ 5 . Webhook signing, retry, and failure event recording
22+ 6 . Readiness and liveness split for orchestration
23+ 7 . Request ID propagation and access logs
2124
22- ## Quick start (scaffold)
25+ ## Quick start
2326
24- ### Rust
27+ ### Run API server
2528
2629``` bash
2730cd rust
2831cargo run -p spatiad-bin
2932```
3033
34+ Health check:
35+
36+ ``` bash
37+ curl http://localhost:3000/health
38+ curl http://localhost:3000/ready
39+ ```
40+
3141### TypeScript workspace
3242
3343``` bash
@@ -36,9 +46,52 @@ pnpm install
3646pnpm -r build
3747```
3848
49+ ### Run core tests
50+
51+ ``` bash
52+ # Rust API unit + integration tests
53+ cd rust
54+ cargo test -p spatiad-api
55+
56+ # SDK tests
57+ cd ../typescript
58+ pnpm --filter @spatiad/sdk test
59+ ```
60+
61+ ## Key runtime configuration
62+
63+ - SPATIAD_BIND_ADDR (default: 0.0.0.0:3000)
64+ - SPATIAD_LOG_LEVEL (default: info)
65+ - SPATIAD_H3_RESOLUTION (default: 8)
66+ - SPATIAD_DRIVER_TOKEN (optional)
67+ - SPATIAD_DISPATCHER_TOKEN (optional)
68+ - SPATIAD_DISPATCH_RATE_LIMIT_PER_MIN (default: 240)
69+ - SPATIAD_WS_RECONNECT_MAX_PER_MIN (default: 30)
70+ - SPATIAD_WEBHOOK_URL (optional)
71+ - SPATIAD_WEBHOOK_SECRET (optional)
72+ - SPATIAD_WEBHOOK_TIMEOUT_MS (default: 3000)
73+
74+ See full matrix in docs/CONFIG.md.
75+
76+ ## Deployment options
77+
78+ - Docker: Dockerfile
79+ - Compose: docker-compose.yml
80+ - Kubernetes: k8s/deployment.yaml
81+ - systemd: dist/spatiad.service
82+
83+ Detailed deployment steps are in docs/DEPLOYMENT.md.
84+
3985## Documentation
4086
41- High-level architecture and MVP documentation plan :
87+ Primary references :
4288
43- - docs/IMPLEMENTATION_PLAN.md
89+ - docs/GETTING_STARTED.md
90+ - docs/API_HTTP.md
91+ - docs/WS_PROTOCOL.md
92+ - docs/SECURITY.md
93+ - docs/CONFIG.md
94+ - docs/DEPLOYMENT.md
95+ - docs/OPERATIONS_RUNBOOK.md
96+ - docs/TROUBLESHOOTING.md
4497- ARCHITECTURE.md
0 commit comments