Skip to main content

Interop Service — Deployment Topology

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD


1. Runtime

AttributeValue
RuntimeNode 22 / NestJS 11
LanguageTypeScript 5.x
HTTP port3000 (REST + FHIR)
MLLP port2575 (HL7 v2 inbound, TLS)
Package name@ghasi/interop-service

2. Replicas and Scaling

EnvironmentMinMaxScaling trigger
Production (hub)28FHIR request rate > 500/min or CPU > 70%
Production (facility node)12CPU > 80%
Staging12Manual
Development11N/A

MLLP listener is stateful (TCP connection per connector); sticky sessions for MLLP pods.


3. Kong Routes

RouteUpstream
/fhir/R4/*interop-service:3000
/v1/interop/*interop-service:3000
MLLP 2575Direct TCP (bypasses Kong); firewall-controlled

4. Dependencies

DependencyTypeNotes
PostgreSQL 16HardMessage log, connector registry
NATS JetStreamHardEvent publishing + outbound trigger consuming
All clinical servicesHard (routing)FHIR request targets
terminology-serviceHard (terminology ops)FHIR $lookup/$expand proxy
access-policy-serviceHard (ABAC)Patient-linked FHIR read authorization
MinIOHard (bulk export)NDJSON file storage
Redis 7SoftCapabilityStatement cache (5 min TTL)
KeycloakHardJWT validation
KongHardHTTPS routing

5. Environment Variables

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
NATS_URLYesNATS JetStream URL
KEYCLOAK_JWKS_URIYesJWT validation
ABAC_SERVICE_URLYesaccess-policy-service
MINIO_ENDPOINTYesMinIO for bulk export
MINIO_BUCKET_EXPORTSYesBucket name for export NDJSON
REDIS_URLNoCapabilityStatement cache
MLLP_PORTNoDefault 2575
FHIR_PROFILE_VALIDATION_ENABLEDNoDefault true
TERMINOLOGY_SERVICE_URLYesFor FHIR terminology op proxy

6. Service Routing Table (FHIR)

Resource TypeCategoryOwning Service
Patient, Encounterregistration-service
Observationvital-signspatient-chart-service (vitals)
Observationlaboratorylaboratory-service
DiagnosticReportLABlaboratory-service
DiagnosticReportRADradiology-service
ImagingStudyradiology-service
Specimenlaboratory-service
ServiceRequestorders-service
MedicationRequestmedication-service
Immunizationimmunizations-service
Appointment, Schedule, Slotscheduling-service
CodeSystem, ValueSetterminology-service
Practitioner, Organizationprovider-directory-service