
FHIR server selection for data management involves specific criteria. Six that determine success.
1. Sustained write throughput. HAPI 1500-1800/s; Aidbox 2500-3000/s; Medplum 3000-3200/s.
2. Bulk export scaling. Bulk Data IG $export at 10M+ resources.
3. Terminology co-location. In-process (HAPI, Aidbox) simpler; standalone (Ontoserver) more capable.
4. Subscription reliability. Subscription retry, dead-letter, back-pressure.
5. Observability. Prometheus per resource type.
6. Vendor support quality. Response time, escalation path.
Vendor decision matrix
| Server | Throughput | Bulk | Terminology | Subscription | Metrics |
|---|---|---|---|---|---|
| HAPI JPA 7.x | 1500-1800/s | Good with tuning | In-process | External | JMX |
| Aidbox 2409 | 2500-3000/s | Excellent | In-process | Built-in | Prometheus |
| Medplum 3.x | 3000-3200/s | Excellent | Minimal | Built-in | OpenTelemetry |
| Microsoft FHIR | 1000-1500/s | Native | External | Add-on | Azure Monitor |
Common selection mistakes
1. Peak throughput as decision criterion. 2. Ignoring terminology needs. 3. Underestimating auth complexity. 4. Assuming vendor claims. 5. Not matching team's language.
Investment sizing
| Vendor | Year 1 | 3-year |
|---|---|---|
| HAPI (open) | Dev + ops | Dev + ops |
| Aidbox | $200-400k | $600-1.2M |
| Medplum | $150-300k | $450-900k |
| Firely | $150-300k | $450-900k |
| Microsoft FHIR | $100-200k | $300-600k |
FHIR server selection is a five-year commitment. Verify with load tests + Inferno + reference customers before commit.