Architecture

How the services are divided, why the boundaries sit where they do, and which decisions are settled.

Page Read it when
Overview You need the whole picture: Go services behind a Go gateway, React remotes, schema-per-service.
Detailed diagrams The overview is not concrete enough and you want the request and event paths drawn.
Scalability You are handing the design to operations and need the implemented limits.
Scaling operations You need reliability defaults, DR targets, DLQ replay, and chaos experiments.
Query keys You are adding a TanStack Query call and must match the hierarchical key shape.

Decisions

Architecture Decision Records hold the decisions that are expensive to reverse. They record durable choices, not meeting notes — read the ADR index before proposing a change that contradicts one, and use the ADR template to write a new one.

The rule that constrains everything else

Service code lives in services/<name>/internal/..., which the Go compiler refuses to let another service import. Shared behaviour goes in internal/platform and nothing else is shareable. Cross-schema writes are forbidden; lifecycle rides Redis Streams.


Table of contents