Lesson 4 — Interaction Patterns and Coupling
Point-to-point
Systems exchange directly. This can be appropriate for a small, stable pair. The problem emerges as system count and shared-data reuse grow: pairwise interfaces multiply, transformation rules diverge, and support cost rises rapidly.
Clues: too many interfaces, every new consumer needs another feed, inconsistent downstream versions, high support/troubleshooting burden.
Hub-and-spoke
Systems exchange through a physical or virtual hub. The hub can centralize routing, shared transformation and a canonical model.
A canonical model is a common enterprise/exchange representation. Instead of every system translating directly to every other system, each maps to/from the common format.
Benefit: fewer unique relationships and more consistent semantics.
Cost: governance, modeling, versioning and maintenance of the common model.
Publish-subscribe
A producer publishes data/events to a topic/service and one or more consumers subscribe. The producer does not need separate custom delivery logic for every subscriber.
Best clue: one producer, many consumers, same timely information, loose coupling desired.
These patterns do not replace ETL/ELT
Interaction topology, latency and transformation are separate questions.
A pub-sub event may still require transformation. A hub can still operate in batch. A point-to-point feed can still use CDC.
Tight vs loose coupling
- Tight coupling: the current process depends on immediate downstream behavior. Commonly synchronous; shares availability and blocking risk.
- Loose coupling: systems can operate more independently, commonly through asynchronous exchange, queues or messaging.
Near-real-time does not automatically mean synchronous.
Stop and check
Five applications receive separately coded Customer feeds with slightly different transformations. The enterprise problem is point-to-point/interface proliferation plus inconsistent shared-data meaning. A reusable hub/canonical/publication design is stronger than building a sixth bespoke feed.
Source: pp. 267–270.