Skip to content
Zorix Systems — software that powers your business

Services

Enterprise integration

We build the layer between systems that were never designed to speak to each other: APIs over systems that do not have one, event pipelines between applications that only knew how to export files, and synchronisation with defined ownership for records that exist in three places at once.

The measure of this work is not that data moves. It is that you can prove, on any given morning, that it moved correctly and know within minutes when it did not.

When you need this

Recognisable symptoms

  • Your finance team re-keys invoice data from three systems into a spreadsheet every Friday, and month-end depends on that spreadsheet being right.
  • An overnight job failed on Tuesday, nobody noticed until Thursday, and the fix involved someone editing rows in production.
  • A customer changes their address in the portal and it reaches the billing system, but not the field scheduling system, so an engineer is dispatched to the old property.
  • Two systems report different revenue for the same period and the reconciliation lives in one analyst's head.
  • Every new supplier or acquisition takes months to connect because each integration is built from scratch by whoever is available.

What we build

Deliverables

  • An integration map of the estate: every system, every existing interface, its mechanism, frequency, owner and failure mode.
  • A field-level system-of-record matrix stating who owns each field, who may read it, update direction and conflict rules.
  • REST or GraphQL APIs over systems that lack them, with OpenAPI specifications, versioning policy and published rate limits.
  • Event pipeline with durable queues, idempotent consumers, dead-letter handling and replay from a defined retention window.
  • Adapters per third-party system, isolated so a vendor API change affects one component rather than the estate.
  • Reconciliation jobs, drift dashboards and alerting thresholds with a named owner per integration.
  • End-to-end tracing with correlation IDs, so a single record can be followed across every hop, plus runbooks per failure mode.

Our approach

How we run this work

Map the estate as it is, not as the diagram says

We start from evidence: scheduled task lists, database links, service accounts, firewall rules and file drop locations. The undocumented interfaces — the FTP job someone set up in 2016, the shared mailbox that a macro reads — are the ones that break, and they are never on the architecture diagram.

Ownership before transport

Choosing a queue technology is the easy part. The decision that determines whether the integration works is which system owns each field and what happens when two of them change it in the same hour. We produce that matrix, walk the business through the conflict cases, and get it agreed before writing adapters.

Event-driven where it matters, batch where it does not

Not everything needs to be real time, and pretending it does adds cost and failure modes. Customer-facing state changes are event-driven; reference data and reporting extracts stay on a schedule. Each integration has a stated latency target, and we design to that target rather than to a fashion.

Design for the failure case first

Every adapter is built assuming the far end will be unavailable, slow, or will return something that violates its own specification. Retries, backoff, circuit breakers, poison-message quarantine and idempotency keys are in the first version, not added after the first incident. Duplicate delivery is treated as certain, not unlikely.

Observability as an acceptance criterion

An integration is not accepted until you can answer three questions from a dashboard: is it running, is it in sync, and where did this specific record go. Correlation IDs, per-hop timing, drift figures per entity and alert routing to a named owner are part of the definition of done.

Technology

Named stacks, named versions

Integration and messaging

Azure Service BusAWS SQS/SNSKafkaRabbitMQDebezium

Services

.NET 8Java 21Python 3.12Node.js 22

Interfaces

RESTOpenAPI 3.1GraphQLSFTPHL7 v2FHIREDI

Operations

OpenTelemetryGrafanaAzure MonitorTerraformKubernetes

Applied by industry

What this looks like per sector

Healthcare and dental

HL7 v2 and FHIR UK Core interfaces between clinical systems, patient-facing services and reporting, with EMIS Web, SystmOne and Dentally as sources and strict minimisation of what leaves the clinical estate.

Energy and utilities

Elexon data flow ingestion, supplier API integration and settlement reconciliation, with exception queues that replace the analyst spreadsheets currently absorbing mismatches.

Hospitality

EPOS, PMS, payment and stock integration across sites, giving one reconciled sales and margin figure per day instead of five exports that disagree.

Real estate

Property and applicant synchronisation between Reapit or Alto and the Rightmove and Zoopla feeds, with a single owner per field so listings stop diverging from the source record.

Manufacturing

Professional services

Practice management, time recording, Xero or Sage and document systems connected so matter, time and billing agree without a monthly manual reconciliation.

Financial services

Industries in detail

Typical engagement

Shape, duration and budget

Integration assessment
2 to 4 weeks: estate map, ownership matrix, target architecture and phase plan.
First integrations live
8 to 14 weeks, typically two to four interfaces in the first release.
Team shape
Integration architect in the UK or Germany; 3 to 5 engineers including a data engineer, plus a platform engineer for pipelines and monitoring.
Indicative budget
£180,000 to £500,000 for a first phase; larger estates run as a rolling programme.
Run
Optional managed run with defined response times, on-call routing and monthly reconciliation reporting.

Questions

Frequently asked

Do we need an integration platform such as MuleSoft or Boomi?

Sometimes. For a large estate with many endpoints and a dedicated integration team, a platform earns its licence. For most organisations connecting a dozen systems, a purpose-built layer on your existing cloud services costs less to run and far less to change, and does not add a vendor to your critical path. We assess both and show the five-year cost of each.

What happens when a third-party API is down or slow?

The integration layer is designed for that as the normal case: retries with exponential backoff, circuit breakers, idempotent message handling, dead-letter queues and alerting with a named owner. The business-visible behaviour under failure is agreed during design, so a supplier outage degrades one function rather than stopping the operation.

How do you handle systems with no API at all?

In descending order of preference: a supported API, a documented database view or replica, a scheduled file exchange with checksums, then screen or report scraping as a last resort with an explicit note that it is fragile. We state which mechanism each integration uses and what would break it, so the risk is visible rather than buried.

Who owns a record when two systems both hold it?

One system per field, agreed and written down before build. The mapping document records the owning system, the permitted readers, the update direction and the conflict rule for every material field. Disagreements about that table are far cheaper to resolve on paper than in production data.

How do we know the data is actually staying in sync?

Reconciliation is part of the build, not an operational hope. Scheduled jobs compare record counts and checksums between systems, a dashboard shows drift by entity, and thresholds raise alerts. Every message carries a correlation ID so a single record can be traced end to end through the pipeline.

Tell us what your systems are doing wrong.

Send the problem, not a brief. We will tell you whether it is a project we should be involved in.

Talk to us