Network/Journal/Storage Architecture Postgres First
All entries
Entry 023

Storage architecture — Postgres-first

Date
2026-05-08
Status
Decided
Authority
Creator

Decision

The storage stack:

  • Triple store — Postgres with Apache AGE for graph traversal, pgvector for embeddings
  • Op log — Kafka or Redpanda, append-only, partitioned by Franchise, source of truth for replay
  • Composite views — Redis cache, invalidated per-triple on consensus shifts
  • Discovery — OpenSearch for entity search and faceting
  • Citations and provider archives — object store
  • Graph specialist — Neo4j is deferred. Added only as a read replica if traversal queries dominate read load. Does not become the system of record without a much stronger forcing function.

Reasoning

Hella This proved out the polyglot approach but also exposed the operational tax of running Neo4j as a primary store. For OLN's traversal patterns — mostly 1–3 hops from an entity, plus Franchise-scoped queries — Postgres holds up well, and avoiding a second OLTP system materially reduces operational surface. The triples model is the architecturally important piece; the engine running it is replaceable. Postgres-first preserves optionality: if benchmarks (G10) show traversal dominating, the read-replica path is open.