ADR-0012: PostgreSQL for Core and Knowledge¶
- Status:
Rejected
- Date:
2026-10-01
Note
Rejected in favour of ADR-0019: SQLite First, rqlite Later to keep development simple.
Context¶
Core needs relational data with transactions (tracker, DAG, gates, usage records). Knowledge needs full-text search, graph-like link queries, and possibly vector search later. Both must be operable by a small team; usage data must be queryable from Grafana.
Decision¶
Both services use PostgreSQL, as separate databases (separate
instances in production). Knowledge uses PostgreSQL full-text search and
recursive queries for lineage; pgvector may be added for semantic
search.
Alternatives Considered¶
SQLite¶
Advantages:
Zero operations.
Disadvantages:
Concurrency limits with many runs; weaker search; no Grafana data source in typical setups.
Dedicated graph or search engine for Knowledge¶
Advantages:
Specialized query power.
Disadvantages:
Another technology to operate before the need is proven.
Decision Criteria¶
Functional fit, operational simplicity, ecosystem maturity.
Rationale¶
PostgreSQL covers relational, full-text, recursive-graph and vector needs with one well-known technology.
Consequences¶
Positive¶
One database technology to run, back up and monitor.
Negative¶
Graph queries are less expressive than in a graph database.
Risks¶
Lineage queries may become slow at scale; revisit with measurements.
Follow-up¶
Choose migration tooling and query layer.