Flow

Architecture decisions

ADRs recording calls that had real alternatives, with reasoning.

Decision records live under docs/decisions/. They are binding alongside docs/architecture.md unless a conversation explicitly relaxes one.

ADRDecision
0001Postgres is the source of truth
0002No event sourcing, no CQRS
0003HTTP/JSON between services
0004RabbitMQ with a transactional outbox
0005Identifiers: bigserial, UUIDv7, FID
0006No runtime schema registry
0007Cedar for authorization
0008Synchronous-first cross-service data
0009Why field on commands (audit envelope)
0010Dev auth via X-Dev-Actor (temporary)
0011Generated from an entity spec (future)
0012Postgres topology (one DB per service)
0013JWT authorization at the service with a trust chain
0014Pagination for list endpoints

When proposing a change that contradicts an ADR, update the ADR or add a new one — do not treat undocumented choices as settled.