Skip to content
LambogeniusDocs

HL7 Edge Gateway

Deployment

Run it as a service on Windows, Linux or macOS, or in Docker, Kubernetes, Azure or AWS.

Runs onWindows · Linux · macOS · DockerFree developer license for test traffic. Production traffic needs a paid license.

As an operating system service

# Windows (as Administrator)
hl7-edge-gateway.exe service install --config C:\hl7edge\hl7-edge-gateway.toml
sc start Hl7EdgeGateway

# Linux: deploy/systemd/hl7-edge-gateway.service
# macOS: deploy/launchd/com.lambogenius.hl7-edge-gateway.plist

Containers and cloud

WhereTemplate
Docker Compose: one node, or a 3-node NATS cluster with 2 gateways and HAProxycompose.yaml, compose.cluster.yaml
Kubernetes: AKS, EKS, GKEHelm chart, optionally with NATS as a dependency
Azure Container AppsBicep
AWS ECS Fargate behind a Network Load BalancerTerraform
Store-and-forward on Container Apps and Fargate

Their local storage doesn't survive a replica being replaced, so store-and-forward routes there need an external NATS JetStream cluster. Otherwise messages that were already acknowledged can be lost. The templates refuse to deploy an embedded store there unless you explicitly accept that, and the gateway then shows a warning in its log and console. Pass-through routes have no such limitation.

The templates take console users, API tokens, single sign-on (with the client secret from the platform's secret store) and store encryption keys from secrets: Helm admin.users, admin.oidc and store.encryption; Bicep consoleUsers, oidc and storeKeys from Key Vault; Terraform console_users, oidc and store_keys from Secrets Manager, with admin_certificate_arn for an HTTPS console on the load balancer.

MLLP is usually best kept close to the sending system: run the gateway at the edge, next to MEDITECH, and let it make outbound HTTPS calls to the cloud. Hosting it in the cloud means carrying MLLP across a VPN or private link, and MLLPS is then a must.