Skip to content

0008. Postgres, not distributed SQL

Status: accepted, 2026-10-02. Deciders: jjforge maintainers.

jjforge needs transactions, a schema per module, and a database people already know. Distributed SQL scales writes across nodes, but costs latency, money, and operational knowledge that the team doesn’t have yet.

Options: Postgres run by the CloudNativePG (CNPG) operator, a managed cloud database, or distributed SQL such as CockroachDB or YugabyteDB.

  • jjforge uses Postgres, run in the cluster by CNPG.
  • The schema stays portable to distributed SQL: the tenant leads every key and a transaction stays in one tenant, as ADR 0003 decides.

This decision is revisited when one of these holds:

  • One organization’s write load no longer fits a single primary.
  • Read replicas no longer keep up with reads.
  • An installation needs active writes in more than one region.