Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Connecting Your Systems Without Building a Spaghetti Diagram
Data & Scraping

Connecting Your Systems Without Building a Spaghetti Diagram

How to connect systems in a way that survives the fourth and fifth one, and when a point-to-point integration is fine.

Updated 2 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Point-to-point integrations are fine up to about three systems. Beyond that the connection count grows faster than the systems and every change becomes risky. Introduce a middle layer at that point, define one canonical shape per business entity, and make every integration event-driven where you can.

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.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

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

More on Data & Scraping

Start here

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.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →