Skip to main content

Engineering Transparency

33 Architecture Decisions. 51+ Services. 613+ Tests.

Every engineering choice documented, debated, and validated. Open source under BSL 1.1.

Technology Stack

Java 21
Language · LTS
Spring Boot
Framework · 3.x
PostgreSQL
Database · 16
Redis
Cache · 7
Apache Kafka
Messaging · 3.x
Angular
Frontend · 17+
HAPI FHIR
Interop · 7.x
Docker
Deploy · Compose

Service Architecture

HDIM is organized into layered service categories, each with distinct responsibilities and deployment characteristics. All services share common modules for authentication, tracing, and event handling.

4
API Gateways

JWT validation, routing, trusted header injection

4
Event Services

CQRS, event sourcing, immutable audit trails

30+
Domain Services

FHIR, CQL, HEDIS, care gaps, risk scoring

24
Shared Modules

5 domain + 15 infra + 4 API contract modules

29
Databases

Independent schemas, Liquibase migrations

Request Flow

Client (Angular / API)
  │
  ▼
Gateway Edge (nginx — TLS, routing, cookie→JWT)
  │
  ├─▶ Gateway Admin    (auth, tenants, users, API keys)
  ├─▶ Gateway Clinical (care gaps, events, analytics)
  └─▶ Gateway FHIR     (FHIR R4, CQL engine, quality measures)
        │
        ├─▶ Domain Services (patient, care-gap, quality-measure, ...)
        │     └─▶ PostgreSQL (per-service database)
        │
        ├─▶ Event Services (patient-event, care-gap-event, ...)
        │     ├─▶ Kafka (event streaming)
        │     └─▶ PostgreSQL (event store + projections)
        │
        └─▶ Shared Infrastructure
              ├─▶ Redis (cache, sessions, rate limiting)
              ├─▶ OpenTelemetry → Jaeger (distributed tracing)
              └─▶ Prometheus → Grafana (metrics)