FHIR Stores: Storage Backend Choices That Affect Operations

FHIR Stores: Storage Backend Choices That Affect Operations

The storage backend behind a FHIR server shapes its operational characteristics more than most buyers realize. Three storage patterns dominate 2026 deployments.

Pattern 1: JPA-backed relational (Postgres, MySQL). HAPI FHIR and Firely Server use JPA/ORM against relational. Best for teams comfortable with SQL operations. Requires careful index tuning per HAPI's guide.

Pattern 2: JSONB-native Postgres. Aidbox stores FHIR resources as JSONB columns with indexed search parameters. Postgres remains the source of truth; queries use Postgres query planner efficiently.

Pattern 3: Document-store native. Microsoft FHIR Server on Cosmos DB, Medplum with Postgres logical replication for events. Best for cloud-native deployments with document semantics.

Operational profile comparison

Backend Write throughput Read throughput Backup Query flexibility
JPA/relational (HAPI) 1500-1800/s Depends on indexes pg_dump Full SQL
JSONB (Aidbox) 2500-3000/s Fast with indexes pg_dump JSONB queries
Document (Cosmos) 1000-1500/s Fast Azure-managed Cosmos SQL
Document (Medplum PG) 3000-3200/s Fast pg_dump Postgres SQL

Backup and recovery

All Postgres-backed servers back up via pg_dump for logical or WAL archiving for point-in-time. Cosmos-backed uses Azure's managed backup. Restore semantics vary; verify RTO/RPO against your requirements.

Cost profile

Backend Storage cost Compute cost
Postgres (self-hosted) Low Medium
Postgres (RDS/Cloud SQL) Medium Medium
Cosmos DB High Managed
Amazon Aurora Medium-high High

Storage backend is a five-year decision. Match to your ops team's expertise, your cloud strategy, and your query patterns.