twimco.Let’s talk ↗︎
Menu
Field notes / Operations

Map the source of truth before you trust the sync.

Inventory lives in the warehouse system and in a spreadsheet that feeds ads. The customer lives in three tools that merge records differently. Adding another sync job won't settle it. It just copies the argument faster.

Antique workshop wall map with five sealed stations—order, inventory, customer, payment, shipment—linked by red conflict-rule threads.

When order, inventory, customer, payment and shipment data live in several systems, decide which one is authoritative for each before you add another sync. Note what is only a cache or a derived copy, and write the conflict rule for when copies disagree. Without that map, every integration invents its own truth and operators inherit the arguments.

Sync copies the argument

Order status lives in the commerce platform. Inventory lives in the warehouse system and also in a spreadsheet that feeds ads. The customer exists in the CRM, in login, and in a support tool that merges records. Payment truth is at the processor, except when finance adjusts it somewhere else. Shipment events land in two dashboards that disagree.

Teams add sync jobs and hope for unity. Without a map of who is allowed to be right, sync just copies the argument faster.

Five rows, then the ones you actually fight about

For order, inventory, customer, payment, and shipment, write four lines.

Authority. The system that wins when two screens disagree, for the fields that matter.

Copies. What else may hold a copy, and how fresh it is allowed to be.

Conflict. What a person does when they disagree. Not "eventually consistent." A page, a freeze, a human queue.

Owner. The role allowed to change which system is the authority.

Add rows you actually fight about. Returns. Tax. Entitlements. If a domain has no trustworthy authority yet, write that down and name the interim human process. Pretending a weak system is the authority is worse than naming the gap.

Sometimes the split is inside one noun. The order header is authoritative in commerce. The fulfillment status is authoritative in the warehouse. Draw the sub-row. One box that "owns the order" will start a write fight.

How the work moves

Five domains on the SoT map

  1. Order

    Authoritative system for order state and line truth.

  2. Inventory

    Authoritative count/allocation; caches labeled.

  3. Customer

    Identity SoT; merges and aliases ruled.

  4. Payment

    Processor vs ledger authority clarified.

  5. Shipment

    Carrier events vs internal shipment SoT.

Illustrative source-of-truth framework; not a client screenshot or measured result.
If two systems both believe they are authoritative, your operators become the reconciliation layer.

Build it where the argument is already hot

Two hours. Operations, engineering, and finance. Start with inventory and payment. Ask: if two screens disagree at 4 p.m. on a busy day, which one may a person trust enough to act?

Write the conflict rule as an action. "Page the inventory owner. Freeze storefront availability until the warehouse wins." Hang the page where incident responders can see it.

New people should see it in the first week. If only veterans know which screen to trust, you have a bus-factor problem dressed up as experience.

Copies may be read. They must not quietly accept writes that skip the authority. Note that on the map. If ads or marketing spend against an inventory cache, put them on the map as a copy, with the lag written down. Spending against a stale count is an authority failure with a media budget.

How the map goes stale

Two systems are both declared authoritative, and humans reconcile. A cache pretends to be the source. The loudest person in the room wins, and the schema loses. The diagram is beautiful, has no owner, and is never updated.

After a cutover or a merger, rebuild the map early. An integration program that skips this creates a reconcile team that lasts for years.

If a system is being turned off, put the date on the map. Ghost authorities live in people's heads after the boxes are gone.

Put this into practice

Fill the five rows before you approve another sync that writes into a domain. Block new syncs that do not name an authority. Revisit the page after any cutover.

If you are about to connect more tools before the rows exist, pause. That work is business process automation.

Related work: Paddle8.

Decision guide

Copy vs authority

ConsiderationLooks syncedSoT mapped
DisagreementOperators Slack for the real number.Conflict rule names which system wins.
New integrationWrites wherever convenient.Writes only into agreed authority or cache.
IncidentDiagram from last year.Current map with owners.
CacheTrusted like truth.Labeled derived with refresh rule.
Decision framework: assess these conditions against your own stack.
twimco.

We build alongside the people doing the work.
Bring us the problem you’re thinking about.

Related work

Paddle8 ↗︎