Hydra Connect
Hydra Connect is TietAI's integration routing platform. It receives healthcare messages from any source — HL7 v2, FHIR, DICOM, X12 EDI, HTTP, MQTT — processes them through configurable channel pipelines, and delivers them to the right destination. It is the connectivity layer that feeds the Hydra Builder with real-time clinical data.
Architecture: Hub and Spoke
Hydra Connect uses a hub-and-spoke architecture:
Three core entities:
| Entity | What it is |
|---|---|
| Hub | Central message router. Receives all inbound messages, applies routing rules, dispatches to spokes |
| Spoke | A regional processing endpoint with a worker pool. Registers at runtime, sends heartbeats, can be deregistered |
| Channel | An integration pipeline definition — source connector, transformations, destination connectors. Persisted in PostgreSQL |
The hub itself is stateless — routing tables are in memory. Channels are the durable configuration layer.
Supported protocols
Inbound (sources)
| Protocol | Use case |
|---|---|
| HL7 v2 MLLP | Receive ADT, ORU, ORM, SIU messages from HIS, lab, and radiology systems |
| FHIR R4 REST | Receive FHIR resources and bundles from any FHIR-compliant system |
| HTTP/HTTPS | Receive data via webhooks and REST APIs |
| MQTT | Receive messages from IoT devices and wearable sensors |
| File watcher | Ingest files from local directories or object storage |
| DICOMweb | Receive DICOM imaging studies and reports |
Outbound (destinations)
| Protocol | Use case |
|---|---|
| FHIR R4 | Write resources to any FHIR R4 server |
| HL7 v2 MLLP | Route messages to downstream HL7 systems |
| HTTP/HTTPS | POST data to external APIs and webhooks |
| X12 EDI | Send claims and administrative transactions |
| IDoc | Integrate with SAP systems via IDoc format |
| Database | Write to PostgreSQL, MySQL, or data lakes |
Transformations
A channel applies transformations in sequence as a pipeline between the source and destination:
Channels can apply transformations in sequence between the source and destination:
| Transformation | What it does |
|---|---|
| HL7 → FHIR | Converts HL7 v2 messages to FHIR R4 resources using segment mapping rules |
| FHIR → HL7 | Converts FHIR resources back to HL7 v2 for legacy systems |
| FHIR → IDoc | Bridges FHIR clinical data to SAP IDoc format via SAP Integration Suite |
| X12 → FHIR | Translates X12 administrative transactions to FHIR |
| JSONPath / JMESPath | Extracts, renames, or reshapes fields in JSON payloads |
| XSLT | Applies XSLT stylesheets to XML messages |
| Validate | Validates FHIR resources against R4 profiles or HL7 conformance rules |
| Anonymize | Strips or pseudonymizes PHI fields for research or analytics destinations |
| Enrich | Adds data from a reference source (e.g., lookup patient MRN from a master patient index) |
Channels
A channel defines a complete integration pipeline: what comes in, what happens to it, and where it goes.
Creating a channel
- Go to Settings → Connect → Channels → New Channel
- Configure the Source connector — select the inbound protocol and its settings (MLLP port, FHIR endpoint URL, MQTT topic, etc.)
- Add Transformations — drag and drop transformation steps in order
- Configure the Destination connector — select where processed messages go
- Click Save and Deploy
The channel activates immediately. Inbound messages start flowing.
Channel states
| State | Meaning |
|---|---|
| Active | Accepting and processing messages |
| Paused | Listener active but messages queued, not processed |
| Stopped | Listener closed; messages rejected |
| Error | Processing failed; channel suspended pending review |
Monitoring a channel
Go to Settings → Connect → Channels and click any channel to open its dashboard:
- Message throughput — messages per minute, per hour, per day
- Error rate — failed messages as a percentage of total
- Latency — median and P99 processing time
- Dead-letter queue — messages that failed all retries, available for replay or discard
Spokes
Spokes handle the actual processing work. Each spoke is a regional worker pool that can run on different infrastructure — a cloud region, an on-premise server, or an edge node inside a hospital network.
Using spoke routing
When creating or editing a channel, the Spoke field controls where processing happens:
- Auto — The hub selects the spoke with the lowest load
- Specific spoke — Pin the channel to a named spoke (use for data residency requirements or high-priority workloads)
Adding a spoke
Spokes register themselves with the hub at startup using the spoke registration API. Contact TietAI support to configure a new spoke in your deployment.
IoT and wearables ingestion
Hydra Connect includes an MQTT broker for ingesting data from IoT devices and wearable sensors directly, bypassing cloud APIs.
Use cases:
- Hospital-grade bedside monitors streaming vitals
- Medical-grade wearables transmitting to a local gateway
- Custom IoT sensor networks in care facilities
Data received via MQTT is transformed to FHIR Observation resources using a configurable mapping and routed to the FHIR store. For consumer wearables (Fitbit, Garmin, Oura, WHOOP, Apple Health), see Wearables & Devices.
Security and compliance
- All inbound MLLP connections are TLS-encrypted at rest and in transit
- Messages containing PHI are processed under HIPAA Business Associate Agreement controls
- Every message is logged to the audit trail with source, destination, timestamp, and transformation applied
- GDPR-mode channels strip EU personal data fields before cross-border routing
Troubleshooting
Channel stuck in Error state
- Go to Settings → Connect → Channels → [Channel name]
- Open the Error log tab to see the failure reason
- Fix the underlying issue (misconfigured destination, expired credentials, etc.)
- Click Resume to restart processing
Messages arriving at MLLP listener but not flowing through
Check that:
- The channel is in Active state
- The spoke assigned to the channel is online (green dot in Settings → Connect → Spokes)
- No transformation step is blocking on missing reference data
High latency on a channel
The spoke handling the channel may be overloaded. Go to Settings → Connect → Spokes and check the spoke's CPU and queue depth. Consider pinning high-priority channels to a dedicated spoke or increasing the spoke's worker pool size.