Stop fighting legacy GUI-based engines. Build, version, and deploy healthcare integration pipelines using YAML and TypeScript.
AI-friendly by design.
Every other part of your stack is defined as code—infrastructure, CI/CD, containers. Why are healthcare pipelines still configured in GUIs and stored in databases?
A channel is a folder with a YAML config, a TypeScript transformer, and an optional validator. Everything lives in your Git repo.
id: fhir-to-adt enabled: true listener: type: fhir fhir: port: 8082 base_path: /fhir/r4 version: R4 resources: [Patient] transformer: runtime: node entrypoint: transformer.ts destinations: - hl7-file-output
Declarative YAML: what connects to what, which protocol, which port.
import type { Patient } from "fhir/r4"; import { Message } from "node-hl7-client"; export function transform( msg: IntuMessage, ctx: IntuContext ): IntuMessage { const p = msg.body as Patient; const hl7 = new Message({ messageHeader: { msh_9_1: "ADT", msh_9_2: "A08", msh_11_1: "P", }, }); hl7.addSegment("PID"); hl7.set("PID.5.1", p.name?.[0]?.family); hl7.set("PID.5.2", p.name?.[0]?.given?.join(" ")); return { body: hl7.toString() }; }
Pure TypeScript: full npm ecosystem, type safety, IDE support.
Scaffold a project with sample channels, npm deps, and Docker config.
Add channels. Each one is a folder with YAML + TypeScript.
Run the engine. Auto-compiles TypeScript. Hot-reloads on changes.
A production-grade engine with enterprise features—all open source.
Every pipeline is plain text files. Branch, diff, review, and merge your integration logic the same way you ship application code.
Structured YAML + typed TypeScript are the formats LLMs generate best. Use AI assistants to create, modify, and debug your pipelines.
Go binary runtime with a pre-loaded Node.js worker pool. Modules are cached in V8 at startup. Transform execution is measured in microseconds.
Memory, Postgres, or S3 backends. Store messages at each pipeline stage for audit and replay. Configurable per-channel.
Configurable retry with fixed, linear, or exponential backoff per destination. Failed messages route to a DLQ for inspection.
Preprocessor, Validator, Source Filter, Transformer, per-destination Filter & Transformer, Response Transformer, Postprocessor.
OpenTelemetry traces and metrics, Prometheus endpoint, and log transports for CloudWatch, Datadog, Sumo Logic, Elasticsearch.
Redis-based coordination with channel partitioning, message deduplication, and persistent destination queues.
HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager. LDAP and OIDC for dashboard authentication. RBAC and audit logging.
Sources define where messages come from. Destinations define where they go. Mix and match across protocols.
Every stage is optional except the transformer. Per-destination filters and transformers let you customize payloads for each output independently.
Base config in intu.yaml. Override per environment with intu.dev.yaml or intu.prod.yaml. Environment variables expand with ${VAR} syntax.
Storage mode, log transports, secrets provider, cluster config, and connector settings all vary by profile. One codebase, every environment.
runtime: mode: cluster message_storage: driver: postgres mode: full logging: transports: - type: datadog datadog: api_key: ${DD_API_KEY}
We believe transparency builds trust. Read how intu stacks up—including where others still win.
The most widely deployed open-source healthcare engine. We show where Mirth still wins and where intu is better.
Read comparison →Premium enterprise integration engine. 100+ connectors and vendor SLAs vs free and open source.
Read comparison →SaaS integration platform with no-code builder. Zero-ops vs full control—which fits your team?
Read comparison →Move from legacy GUI-based engines to a modern, Git-native workflow. Go binary + Node.js worker pool, sub-millisecond transforms, and hot-reload out of the box.
Import your existing Mirth channel XML exports directly. Generates channel.yaml + transformer.ts automatically.
Same pipeline stages, same connector types, same healthcare protocols. Modern TypeScript instead of Rhino JS. Git instead of a database.
Architecture Decision Records explain the reasoning behind every major technical choice.