Skip to main content

Harmony Proxy

A secure, pluggable proxy for data meshes, with first-class healthcare support (FHIR, DICOM/DICOMweb, JMIX).

Overview​

Harmony Proxy is an extensible data mesh proxy/gateway for heterogeneous systems. It routes requests through configurable endpoints, middleware, and services/backends to connect systems securely.

Who Is This For?​

  • Platform teams building data meshes or integration hubs (healthcare and beyond)
  • Developers integrating HTTP/JSON services and healthcare protocols (FHIR, DICOM/DICOMweb)
  • Operators who need auditable, configurable request/response pipelines

Architecture​

Harmony uses a pipeline architecture:

  1. Endpoints - Define public-facing routes and protocols
  2. Middleware - Process and transform requests/responses in order
  3. Backends - Perform the actual work (HTTP calls, DICOM operations, etc.)

All components are configured via TOML files and can be hot-reloaded.

Runbeam Architecture​

The Harmony proxy architecture defines how users, organisations, endpoints, and services interact within the Runbeam network. The model separates responsibilities into clear abstractions for routing, policy enforcement, and inter-organisation communication.

Users, Teams, and Orgs (these are NOT part of Harmony)​

  • Users belong to Teams.
  • Teams are grouped into Orgs, which are the fundamental unit of organisation.
  • Orgs (and sub-groups) organise endpoints. By default, all endpoints within an Org or Group can communicate.
  • Policies can restrict communication further. Endpoints cannot be shared outside their Org, but Orgs can be members of multiple Groups.

Gateway and Endpoint​

  • A Gateway represents a Harmony entry point. It maps to an IP or DNS address (this project)
  • An Endpoint attaches to a Gateway and registers with Runbeam. Endpoints have a globally unique URI in the Runbeam network, allowing routing without needing the underlying Gateway address.

Service​

  • Services are the backend applications or systems behind a Gateway.
  • Each Service declaration specifies which backend services are exposed on an Endpoint.
  • This tells Runbeam which services are available for routing requests.

Pipeline​

  • A Pipeline handles the flow of traffic between Endpoints and Services.
  • Pipelines are designed for inter-organisation communication. They use Network Endpoints, which behave like regular Endpoints but are specialised for network-level traffic.
  • Pipelines can be extended with:
    • Transforms – perform protocol or payload modifications.
    • Policy + Rules – enforce access control (e.g., “can Endpoint A talk to Endpoint B?”).

Network​

  • A Network is a higher-level abstraction built on Pipelines, designed for inter-organisation connectivity and routing.
  • Networks allow secure, policy-controlled communication between different Orgs while leveraging the same Endpoint/Gateway structure.

Status​

Harmony Proxy is under active development. For more information, visit harmonyproxy.com.

Next Steps​