Igor Maslov
guest
guest
The fourth Software Architecture: The Hard Parts episode connects behavior reuse with shared-data ownership. The speakers compare approaches through their costs: coupling, network failures, version upgrades, and operational complexity.
Code replication preserves autonomy but multiplies copies. A shared library moves coupling to compile time and needs version discipline, while a shared service puts logic behind a network call. Sidecar, init-container, and adapter patterns place reusable behavior next to the application.
The data discussion starts with one question: who may change a shared table? Single ownership appoints one authority, domain ownership splits responsibility by domain, and a delegate represents several consumers. Service consolidation restores a transaction by making the service larger.
The finale compares eventual consistency, background synchronization, and request-based orchestration. Duplication can be cheaper than an unstable abstraction, while ownership must follow business invariants, change frequency, and the acceptable inconsistency window.