Feature list

Every feature, in one table

A complete, scannable index of what MessageFoundry does in v0.1 Early Access, grouped by area. Want the story behind each capability? The detailed features page walks through them. What's planned for 0.2 and beyond is in its own table at the end.

Feature What it does
Open source & no lock-in
AGPL-3.0-or-laterOpen license — read it, run it, fork it. A low-cost commercial edition is available when the AGPL doesn't fit.
Configuration as codeConnections, Routers, and Handlers are diffable, reviewable modules — wizard-generated or hand-written. The database holds runtime state and messages only, never configuration.
Standard databasesNo proprietary data platform required, and no proprietary scripting language to staff for.
No runtime or contract lock-inSelf-hosted, on your infrastructure, on your terms.
Reliability
Durable before acknowledgedThe inbound is ACKed only after the received message is committed to the store on ingest, so an accepted message survives a crash before any processing begins.
At-least-once deliveryEvery accepted message is delivered at least once; nothing is silently dropped.
Ordered (FIFO) deliveryMessages to a given destination are delivered first-in, first-out, preserving per-connection sequence.
Per-outbound workersEach destination drains independently; one slow or failing peer never blocks the others.
Automatic retries & failure policyBack off and retry on a configurable policy, then dead-letter, with a bulk-replay view for recovery.
ReplayRe-drive a stored message through delivery from the console or API.
Automatic crash recoveryAfter a restart or crash, in-flight messages resume from the durable store with no manual cleanup.
Nothing silently droppedEvery message is persisted on ingest, then processed to a recorded disposition — routed, filtered, or unrouted.
Message formats
HL7 v2, deeply parsedFull parsing and validation: fast and tolerant on the hot path, strict and version-aware where you opt in — built to expect real-world, non-conformant HL7.
JSON, XML/SOAP, X12/EDI & arbitrary payloadsRouted, transformed, enriched, and delivered alongside HL7 v2 (these flow through without structural parsing).
Encoding read from the messageFor HL7 v2, the field, component, repetition, escape, and subcomponent separators come from MSH, never hardcoded.
Raw message preservedKept alongside the transformed form, so an operator always sees exactly what arrived.
Parse failures isolatedRouted to the error / dead-letter path and logged, so a bad message never takes down the connection.
Connections
MLLPCorrect 0x0B … 0x1C 0x0D framing, inbound and outbound, with ACK/NAK generation (AA / AE / AR) and a per-connection ack mode.
TCPRaw stream endpoints.
HTTP / REST & SOAP destinationsDeliver to modern and legacy web-service APIs. (Inbound REST/SOAP listeners are on the roadmap.)
Files — local & SFTP / FTP / FTPSLocal directories and remote file transfer, with templated output names (e.g. {MSH-10}.hl7).
DatabasePoll records in and write results out.
Count-and-log invariantEvery message a connection takes in or puts out is counted and logged; a router or filter decision is a recorded outcome (UNROUTED / FILTERED), never a silent drop.
Routing & transformation
One-to-many routing with filteringFan a message out to multiple destinations, or filter it out entirely; every decision is a recorded outcome.
Transform, enrich, validateReshape and augment messages mid-flight, with validation where you want it.
Reference tables & live lookupsEnrich from static reference / lookup tables, or query a live database during processing.
Guided wizards or pure functionsNew Connection / New Route wizards generate the wiring, or write Routers and Handlers as plain functions registered by name — no proprietary DSL.
Dry-run with before/after diffPreview a route's effect on a real message before it ships.
Security & PHI
AuthenticationLocal accounts and Active Directory (LDAP / Kerberos) sign-in, with opaque, revocable sessions.
RBACFixed built-in roles, deny-by-default, with per-route and per-channel scoping.
Localhost-bound APIThe API binds 127.0.0.1 by default and requires authentication.
TLS in transitThe API and MLLP run over TLS (including MLLP-over-TLS), so PHI never crosses the network in the clear.
Tamper-evident audit logA hash-chained, user-attributed record of every PHI access (raw view, summary, replay), with a verification command.
Encryption at restMessage bodies are encrypted with AES-256-GCM in the store.
Retention & purgeKeep messages as long as policy requires, then purge on a configurable schedule.
Tooling — console, editor & CLI
Admin consoleDashboards, message search and browse, an HL7 parse-tree viewer, delivery and audit trail, and one-click replay — a separate app reaching the engine only over the localhost API.
VS Code extensionCompletion, live HL7-aware validate-on-save, a graph view of your integration, source-control integration, and Stage → Promote to a running engine.
CLI & localhost APImessagefoundry serve exposes connection control, message search/detail, replay, stats, and a live WebSocket feed; check gates commits and generate produces synthetic HL7.
AlertingWebhook and email alerts when a connection stalls or a message dead-letters.
Hot-reload & environment promotionConfiguration hot-reload, with DEV/PROD values layering over the same modules.
ACK modes & guardsConfigurable ACK modes plus message-size and segment guards.
Authoring & AI assist
Setup wizardsGuided New Connection and New Route flows that generate the Python for you — guided authoring whose output is plain code you own and review.
PHI-safe AI assistanceAn in-editor assistant governed by a central, environment-aware policy that sends only code, never message bodies, gated by RBAC.
AI-assisted migrationPaste existing Mirth / Cloverleaf / Rhapsody logic and the assistant helps you express it as Python — code-only and governed.
Test & verify
Interactive test benchSend / receive / file / compose / monitor tools for driving inbound and outbound endpoints by hand.
Headless scenario runnerAssert routing and transform behavior on every commit, in CI.
Test Bench dry-runs in VS CodeRun .hl7 files through a route with before/after diffs.
Synthetic HL7 generatorRealistic, PHI-free messages for load and edge-case testing.
check commit gateValidate configuration before it ships.
CI/CD
Pull-request reviewEvery interface change is a readable diff your team approves, with full history and instant rollback.
Build gatemessagefoundry check validates config and dry-runs messages, failing the build on a broken route before it merges.
Automated tests in CIA headless scenario runner asserts the engine's outcome on synthetic data in GitHub Actions, GitLab CI, Jenkins, or Azure DevOps.
Reproducible promotionOnly a reviewed, green change is promoted to each environment, so production matches git — no config drift.
Auditable by defaultReviewed, tested, timestamped change control, the way compliance already expects it.
Message store — three backends, one contract
SQLiteThe zero-config, single-node default — WAL, one file, no server to run. The baseline every other backend matches byte-for-byte.
PostgreSQLThe production server-DB for horizontal scale-out: many engine hosts share one store, with leader election, strict per-lane FIFO ordering, and failover/HA.
SQL ServerA first-class production backend at parity with PostgreSQL — the same staged pipeline, concurrency-safe claiming, row leases, and multi-node HA.
One Store contractThe same at-least-once model — dispositions, retries, replay, audit, encryption at rest, and retention/purge — runs across all three backends.
High availability
Active-passive failoverA standby promotes on primary failure; in-flight work resumes from the durable store.
No message lossFailover picks up from committed state, so nothing accepted is dropped.
Database-tier HAPostgreSQL streaming replication or SQL Server Always On availability groups back the store.
Runs in your environmentOn-premises, on your infrastructure, on your DR terms.
Deploy & support
Windows service via NSSMInstall / uninstall scripts included.
Headless engineNo GUI imports; testable and runnable as a service.
One config, many environmentsDEV/PROD values layer over the same Python modules.
Support & consultingCommercial support and expert HL7 + Python consulting — migration assistance, custom connectors, and operational guidance.

Everything in this table ships in v0.1 Early Access and is described in present tense as what the engine does. Early Access has not yet had an external code review or penetration test. For the full narrative behind each item, see the features page.

Roadmap

What's next — 0.2 and beyond

Not in v0.1 Early Access. Listed here so the table above stays honest about today versus tomorrow.

Planned What it adds
Scale-out
Active-active clusteringHorizontal throughput across active nodes, beyond today's active-passive HA.
Partition-key parallelismOrdered lanes per key (e.g. per patient) for parallel processing without losing per-key order.
Connectivity & standards
Inbound REST & SOAP listenersAccept inbound web-service calls, complementing today's outbound REST/SOAP destinations.
FHIRFHIR support alongside HL7 v2.
OAuth 2.0, SMART on FHIR & SSO federationOIDC/SAML and AD FS/Entra ID single sign-on.
More databasesMySQL/MariaDB and Oracle as additional store backends.
Security & operations
Multi-factor authenticationMFA on top of the existing local and Active Directory sign-in.
Built-in de-identificationNative PHI de-identification.
Structured logging & SIEM forwardingMachine-readable logs forwarded to a SIEM.
Expanded consoleA dead-letter page, alert management, and a multi-engine view.
Managed BAA-backed AI providerA hosted AI option covered by a Business Associate Agreement.
Independent external reviewAn independent external code review and penetration test.

See it run for yourself