Skip to content
0x41Labs
All work

Wholesale · System integration · ERP

Two systems that knew nothing of each other.

For a mid-sized German wholesale business, data ownership between the ERP and a years-old in-house application was redrawn — after clarification showed the intended bidirectional sync would not hold.

ERP interfaceData modelSystem integrationReconciliationBackendOperations
Sector
Wholesale
Duration
approx. 3 months
Project type
System integration
Result
around 22 hrs/week

The task

Two systems, one set of data — and nothing to decide between them.

Alongside its ERP, the company ran a years-old in-house application for order processing. Both systems worked, and both were used daily.

The problem sat between them: article and customer data were maintained in both places. When the two diverged, there was no technical authority to decide which value was correct — whichever version someone had last corrected by hand won.

The systems were not the problem. The missing answer to which of them was right was.

The critical question

A bidirectional sync sounds like the solution. First it is an assumption.

The obvious plan was a bidirectional sync: both systems write, both read, changes flow in both directions. Technically that is the most demanding option — and it stands or falls on one property of the existing interface.

Two-way write access needs dependable conflict resolution. Without it, the last write wins in practice, and divergence goes unnoticed because both systems display plausible values. So this question was settled before development started rather than during it.

Can the existing ERP interface carry a bidirectional sync — or does data ownership have to be drawn differently?

The clarification

The answer was: not like this.

Analysis of the system landscape and the interfaces that actually existed showed that a dependable bidirectional sync could not be built on them. Not because the transfer was technically impossible, but because the guarantees two-way write access requires were absent.

A system built on that assumption would have worked — until the first concurrent write. After that it would have produced silent data divergence: no error, no alert, just two systems holding different truths. Precisely the state that was previously corrected by hand, only faster and less visible.

An integration that moves data but cannot resolve conflicts only relocates the problem from the spreadsheet into the database.

The solution

Data ownership redrawn instead of a sync forced through.

Rather than forcing a bidirectional sync against the interface, responsibility was redistributed between the systems. The ERP stayed the system of record for master data — articles, customers, prices. The in-house application took process data only, the part it had been built for in the first place.

That removes the conflict question instead of having to solve it: for every piece of data there is exactly one system allowed to change it. Alongside it, a traceable reconciliation surfaces divergence rather than overwriting it in the background.

  • 01ERP (system of record for master data)
  • 02Interface
  • 03Reconciliation with audit trail
  • 04In-house application (process data)
  • 05Order processing

The most dependable integration is often the one that stops a question from arising at all.

The result

Around 22 hours a week that previously went into rework.

With data ownership redrawn, duplicate maintenance disappears — and with it the manual steps it caused: hunting for divergence, comparing states, correcting by hand, then checking whether the correction reached the other system. Around 22 hours a week in total.

The second part of the result is less visible: the decision against the bidirectional sync was taken during clarification, not after months of development. The expensive part of that mistake never happened.

  • Analysis of the system landscape and the available interfaces
  • Target architecture and the cut of data ownership
  • Data model
  • Implementation of the integration
  • Traceable reconciliation instead of silent overwriting
  • Production operation

A week of clarification saved more here than any optimisation afterwards could have achieved.

Your project

Do two of your systems have to work together reliably?

Whether an integration holds is decided by the properties of the interfaces that already exist — not by the effort poured into it. That question can be settled before development starts.