Strategy & Systems Design
Integration architecture: decide who owns each record, then connect
Decided for every connection
01
Who owns the record
The only system that may change it
Every other system holds a copy and takes updates from the owner.
02
Which way it flows
From the owner, outwards
A copy never writes back over the owner. An edit made in a copy is sent to a person.
03
What starts it
A change, or a schedule
Sent the moment something changes where the other system can take it; on a schedule where it can't.
04
How it signs in
Its own key, only the access it needs
Each connection has its own credentials, so one can be replaced without touching the rest.
05
What happens when the other side is down
Retried, safely
Waiting longer each time, and never creating the same record twice.
06
Where failures go
To the person who can fix them
A rejected invoice goes to finance with the reason; a bad phone number goes to the office.
The sync rules, written down
Three failures, planned for
J.H.'s new phone number → texting service
- failed
Sent
texting service unavailable
- done
Wait 1 minute
- done
Sent again
updated
The office app never waited, and the next reminder used the new number.
J.H.'s address, edited in accounting
- done
Change noticed
accounting reports an edit
- done
Owner checked
accounting doesn't own customer contact
- skipped
Applied
the office app's address is kept for now
- with a person
Sent to the office
the office lead decides which address is right
Nothing was overwritten either way, and a person decided.
INV-2301 → accounting
- failed
Sent
rejected: tax code missing
- skipped
Retries
a retry would get the same answer
- with a person
To finance
with the reason and a link to the invoice
- done
Fixed and sent again
accepted
A rejection isn't retried blindly. It goes to the person who can fix it.
What it's drawn from, and what gets built from it
Drawn from
Built as
Worth doing when your systems disagree
Good fit
- Your tools disagree about the same customer or job.
- You're adding a system and need to know what it will own.
- Sync failures are found by customers, or at month-end.
Not the right fit
- Two tools, one direction, one kind of record. Just build the connection.
- Everything already lives in one system.
Questions about integration architecture
What does “source of truth” mean?
The one system allowed to change a kind of record. Every other system holds a copy and takes updates from it.
What if two systems both need to edit a record?
We pick one owner and route edits through it, or split the record so each system owns its part, like the office app owning the invoice and accounting owning the books.
Do we need an integration platform?
Not always. A few direct connections can be fine. A hub earns its place when there are many systems and you want one place to see every sync.
What about a system with no way to connect to it?
Scheduled exports and imports, under the same ownership rules. It's slower, so the design says how out of date each copy is allowed to be.