Toolchain
The stack each service uses and why each piece was chosen.
| Piece | Role |
|---|---|
| Go 1.26 | Single module; services under services/<name>/ |
| Postgres 18 | Source of truth per service |
| pgx + sqlc | Typed queries from hand-written SQL |
| goose | Migrations embedded in binaries |
| Huma | HTTP routing and OpenAPI generation |
| Cedar | Authorization policies embedded at startup |
| RabbitMQ | Event delivery from the transactional outbox |
| Docker Compose | Local Postgres and RabbitMQ only |
Services run with go run locally; Compose does not wrap the Go binaries.
OpenAPI specs are generated from handler types (-openapi flag) and checked in. The merged platform
spec at the repo root includes deployed services only.
Full detail: docs/toolchain.md.