Integration
Integration is the spine that decides which system owns which data and how the rest find out about it. It is an architectural commitment, not a technical preference, and it outlives every application it connects.
If you change this
It implies 4 topics across one module.
See the path ahead →Why it matters
Integration architecture is one of the decisions that compounds. Point-to-point connections are quick and become an estate nobody can change; a pattern is slower to establish and keeps being cheap.
- It encodes ownership: Which system is the source of truth for each data class.
- It determines changeability: Replacing a system is easy or impossible depending on how it was connected.
- Its failures are silent: An interface that stops running usually announces itself through a business consequence, not an alert.
The workflow
- 01
Data ownership
Each data class assigned a single owning system.
- 02
Pattern selection
Batch, event, API or file chosen per interface with a reason.
- 03
Specification
Payload, frequency, volumes, error handling and reprocessing agreed.
- 04
Build and test
Including the failure cases, not only the happy path.
- 05
Monitoring
Every interface observed, with alerting on failure and on silence.
- 06
Change management
Versioning, so a change at one end does not break the other.
Alert on silence, not only on failure. An interface that stops running produces no errors at all, and that is the failure mode that runs longest before anyone notices.
What you need in place
- A catalogue: Every interface, its owner, and what depends on it.
- A data ownership model: Agreed, and enforced through the patterns.
- Standard patterns: So the twentieth interface is like the first.
- Error handling and reprocessing: Defined per interface, including who works the queue.
- Environment parity: Testing an interface against a non-representative environment proves little.
Questions to ask
01Ownership
Which system owns each data class?
Without this, integration is negotiation each time.
02Silence
Would we know if an interface simply stopped?
Most estates would not.
03Reprocessing
What happens to a failed message?
A queue with no owner accumulates quietly.
04Versioning
How do we change a payload without breaking consumers?
Decide before the first change, not during.
05Point-to-point
How many direct connections do we have?
The count is the measure of how hard the next replacement will be.
Metrics and KPIs to track
Interface success rate
Scheduled runs completing without intervention.
Time to detect failure
Failure to someone knowing.
Error queue age
Unprocessed messages, by interface.
Point-to-point count
Direct connections, as a complexity measure.
Interfaces without an owner
The number that should be zero.
Covers