FHIR Server Selection Checklist: 8 Questions Before You Sign

FHIR Server Selection Checklist: 8 Questions Before You Sign

Diagram: 8-question checklist before signing a FHIR server contract

Signing a FHIR server contract without asking eight specific questions is where teams lose 6 months to unpicked-up-on gaps. The list below is what production teams actually verify before commitment.

**1. Does it pass Inferno for your target profiles?** Not marketing claims — verified conformance against US Core, Da Vinci PDex, or whichever IGs matter.

2. What's the sustained write throughput on your hardware? "Peak" numbers are marketing; sustained 24-hour throughput matters. Ask for real numbers on hardware sized like yours.

3. How does bulk export scale beyond 10M resources? Some servers hit walls; verify with a load test before deploy.

4. What terminology server does it integrate with? In-process (HAPI, Aidbox) or external (Ontoserver)? Latency and operational cost differ significantly.

5. How is auth handled? Built-in (Aidbox, Medplum, Firely) or add-on (HAPI + Keycloak)? Built-in is simpler; add-on is more flexible.

**6. What's the Subscription reliability story?** Retry semantics, dead-letter handling, back-pressure — verify before betting on Subscription.

7. What Postgres tuning is required? JPA-backed servers require specific indexes and pool sizing. HAPI's operations documentation covers the essentials.

8. What's the upgrade cadence and backward compatibility policy? Major version upgrades that break clients are painful; get the policy in writing.

Vendor scorecard (mid-2026)

Server Inferno Sustained write Bulk export Auth Subscription
HAPI JPA 7.x Full 1500-1800/s Good with tuning Add-on Add-on
Aidbox 2409 Full 2500-3000/s Native Built-in Built-in
Medplum 3.x Full 3000-3200/s Native Built-in Built-in
Firely Server Full 2000-2500/s Good Built-in Good
Microsoft FHIR Full 1000-1500/s Native Azure AD Add-on

FHIR server selection is a five-year commitment. Ask the eight questions above; get the answers documented; then decide.