Symphony Apps Development logo — teal interlocking S monogram beside the studio wordmark
All writing

The cost of a second source of truth

Two systems disagreeing about the same fact is not a bug you fix once. It is a tax you pay until one of them stops existing.

Category
Engineering
Reading time
6 min
Published
10 Aug 2026
Topics
Engineering, Delivery

Almost every system we have been asked to fix rather than build had the same underlying shape: two places that both believe they hold the correct version of a fact, and no agreed rule for which one wins.

How it happens

Nobody designs a second source of truth on purpose. It arrives as a shortcut: a spreadsheet kept "just for now" alongside the database, a cached copy that was supposed to be read-only and quietly became writable, a mobile app that stores its own edits offline and syncs them later without a clear precedence rule. Each individual decision was reasonable. The sum is a system that lies to someone eventually.

The symptom is always the same

A customer's address is right in one screen and wrong in another. A stock count matches the warehouse system and not the storefront. Nobody can say with confidence which number is current, so people start keeping their own private notes to compensate, which creates a third source of truth on top of the first two.

  • Pick the owner — one system is authoritative for a given fact, always, and every other copy is explicitly a cache with an expiry.
  • Write through one door — if a value can be written from two places, work stops until there is one write path and the second is made read-only.
  • Make staleness visible — a cached figure should say when it was last confirmed, not present itself as current.

Why this is expensive to leave

The tax is not a single bug. It is every future feature paying interest: a new report has to decide which of the two figures to trust, a new integration has to guess which system is current, and every incident review starts with "which one is actually right" before anyone can even diagnose the problem.

A second source of truth does not get cheaper to remove over time. It gets more places that depend on it existing.

What untangling it actually looks like

We pick the fact that causes the most support tickets, not the one that is architecturally interesting, and fix that one first — usually customer identity or order status. Migrating one fact at a time, with the old copy made read-only immediately rather than deprecated gradually, is slower to plan and faster to finish than trying to unify everything at once.

The reassurance worth giving a client

This work rarely needs new features to justify it. The business case is the hours currently spent reconciling two numbers by hand, which is usually a bigger sum than anyone had added up before we asked.

Tell us what you’re trying to ship

A first call is thirty minutes and costs nothing. Bring the problem, not a spec — working out what to build is the part we are good at.

Or email office@symphonyapps.ro. We reply within one business day, in English or Romanian.