Start with architecture.md: the shape, the dependency rule, the dataflow for one message, and the decisions table.
| Document | Covers |
|---|---|
architecture.md |
Whole repository — patterns, boundaries, Redis layout, milestone map |
contract.md |
schema/, gen/manoochv1/ — the wire format |
price.md |
pkg/price — fixed-point types and the decimal parser |
config.md |
internal/config, config/ — loading, merging, validation |
core.md |
internal/core — instrument identity, enum mapping |
adapter.md |
internal/core/adapter.go, internal/adapter/ — the inbound port |
adapter-binance.md |
internal/adapter/binance — endpoint, payload mapping, quirks |
adapter-kucoin.md |
internal/adapter/kucoin — bullet bootstrap, client ping, split subjects |
adapter-tabdeal.md |
internal/adapter/tabdeal — futures order-book stream and REST snapshot |
transport.md |
internal/transport — websocket connections, backoff, circuit breaker |
supervisor.md |
internal/supervisor — the restart procedure and the escalation tiers |
health.md |
internal/health — status semantics, TTL as freshness, the heartbeat |
fallback.md |
internal/fallback — expiry trigger, REST polling, escalation to STALE |
metadata.md |
internal/metadata — refresh cycle, startup dependency, change logging |
ratelimit.md |
internal/ratelimit — the local limiter, budgets, headroom |
publish.md |
internal/publish — key scheme and the write path |
observability.md |
internal/observability — logger and collectors |
cli.md |
cmd/* — the three binaries |
deploy.md |
deploy/, go.mod, direct development commands |
Building and running: the repository README.md. Per-symbol detail: go doc ./internal/<pkg> — every exported symbol has a doc comment.
The service is complete: every package listed here is built, and architecture.md records what was deliberately left out.