All articles
Integration18 Oct 20267 min read

Connecting your systems: integrations that survive real life

Connecting two systems is easy on a good day. The work is in the bad days: the other system is down, a message arrives twice, someone renames a field, a sync half-finishes. An integration is only as good as its behaviour when something goes wrong.

A neatly cabled network patch panel in a server rack

Decide which system owns each piece of data

For every kind of record — customers, items, prices, stock, invoices — name one system as the owner. Others may read it or hold a copy, but changes start in the owner. Two systems that can both edit the same record will eventually disagree, and nobody will know which is right.

Make every message safe to repeat

Networks retry. A payment confirmation or an order may arrive twice. Give each message a unique key and have the receiving side ignore one it has already processed. This one habit prevents duplicate invoices, double stock deductions and double charges.

Queue, retry and tell someone

Do not send data directly from a user’s click to another system. Put it on a queue, send it in the background, retry with increasing gaps when it fails, and when it keeps failing, put it somewhere a person will see it. A silent failure is far worse than a loud one.

  • Save the change locally first, then send it — never the other way round.
  • Retry automatically, but cap the attempts.
  • Keep a list of failed messages that staff can see, fix and resend.
  • Log what was sent and what came back, so problems can be traced.

Expect the other side to change

Third-party systems change their fields, limits and versions. Keep the mapping between systems in one place, validate what arrives instead of trusting it, and test against the provider’s sandbox before every change. Government and banking connections in particular deserve a test environment of their own.

Prefer one-way where you can

Two-way synchronisation sounds convenient and is the hardest kind to keep correct. If one system can be the source and the other a reader, the integration will be simpler, cheaper and far more reliable.

Plan the first load separately

Moving existing data is a different job from keeping systems in step. Do it as a one-off migration with a dry run, a report of what will change, and sign-off before anything is committed — then switch on the ongoing sync.

A business owner writing a software project brief at a desk
Free template · PDF

Software Project Brief Template

A 3-page, fill-in brief that gets you a sharper estimate from any developer.

  • 3-page PDF
  • About 45 minutes
  • Print or fill on screen