Think Build Implement Repeat
Data & Scraping

Connecting Your Systems Without Building a Spaghetti Diagram

Last updated:

The moment it gets out of hand

Three systems connected directly is three integrations. Six is potentially fifteen. Nobody plans this; it arrives one sensible decision at a time, and then a field is renamed in one system and four things break in ways nobody predicted.

The transition point in our experience is the fourth system. Before that, direct connections are pragmatic and cheap. After it, they compound.

Define the canonical shape of each entity

What is a customer? Each system has its own answer, its own required fields and its own identifier. Without an agreed canonical definition, every integration re-litigates it and no two do it the same way.

  • One canonical definition per entity: customer, order, product, invoice
  • A stable internal identifier that never changes, whatever the source systems do
  • A mapping table per system, translating to and from canonical
  • One written owner per entity who decides what the fields mean
This is a governance exercise disguised as a technical one. The hardest part is getting two departments to agree what “active customer” means, and no integration platform solves that for you.

Events beat polling

Polling every fifteen minutes is simple and wasteful, and it means your data is up to fifteen minutes stale. Events — this happened, here is what changed — are more timely and cheaper to run.

Where a system cannot emit events, poll it and emit events yourself, so everything downstream works the same way. That one adapter keeps the rest of your architecture consistent.

Design for failure, because it is routine

  1. Retry with backoff for transient failures, which are most failures.
  2. Idempotency, so a retried message does not duplicate an order.
  3. A dead letter queue for messages that keep failing, with someone responsible for reading it.
  4. Visible sync status, so support can answer “did it go through?” without a developer.
  5. Replay, so a fixed bug can be applied to the messages that failed because of it.

When point-to-point is still right

Two systems, a stable relationship, low volume, no plans to add more. Building a middle layer for that is over-engineering, and it will be pointed out as such.

The judgement is about direction of travel. If you know a fourth and fifth system are coming this year, building the middle layer at three is cheaper than retrofitting it at six.

Middleware or your own

Integration platforms buy speed and connectors and cost per task at volume, with less control over error handling. Custom middleware costs more up front and gives complete control.

A common sensible pattern: middleware for low-volume, standard connections; custom code for the high-volume path that is core to your business. You are allowed to use both, and most mature setups do.

Frequently asked questions

How much does an integration layer cost to build?

A basic event-driven layer with canonical entities and error handling typically runs £20,000–£50,000 depending on how many systems connect initially. It only makes sense with several systems in play or clearly coming.

What if a system has no API?

Options in order of preference: an export/import route on a schedule, a database-level integration if you control it, or automated interaction with the interface as a last resort. The last is fragile and should be priced with that in mind.

How do we handle conflicting data between systems?

Decide a source of truth per field, not per system. Addresses might be owned by the CRM, credit limits by finance. Write it down, because the alternative is that whichever system synced last wins, which is a decision by accident.

Should we sync everything or only what is needed?

Only what is needed. Every synced field is something to maintain and something that can conflict. Start narrow and add fields when a real requirement appears.

Keep reading

Adding a fourth system to a tangle of three?

That is exactly the moment to think about structure. Tell us what you run and we will sketch what a sane arrangement looks like.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Web ScrapingData Science