Skip to content
#Software

Balancing Coupling in Software Design - GoTo Book Club 2025

#Software #Architecture #DistributedSystems #SystemDesign #Patterns #Sofware #Metrics #Management

Recently. interview for GOTO 2025 Vlad Hononov presented his new book Balancing Coupling in Software Design in an interview with Shin Brisals. I’ve talked about Vlad’s books and speeches before. About his book, "Learning DDD," which I wrote. 4 summary: general overview, DDD and microservices, DDD and event-driven architecture, DDD and data mesh About his performance "Complexity and Modularity Two Sides of the Same Medal" on ArchDays with part of the coupling story before the book was published (1 and 2) Sheen Brisals is also the author of Serverless Development on AWS: Building Enterprise-Scale Serverless Solutions. (O'Reilly, 2024)Specializes in helping teams design, build and operate sustainable serverless solutions

The main topics of the interview were

  • History of Coupling Research in Systems Here, Vlad describes how a failed microservices project led him to study the principles of coupling in software architecture.
  • The Timeless Nature of Design Problems Despite the evolution of technology, the basic principles of design and communication management have remained unchanged for decades. Vlad was inspired by books 70years
  • Three dimensions of relationships: an integration force (knowledge sharing)Distance and volatility are fundamental models for estimating relationships between components. Below are the main ideas about these three dimensions, although the interlocutors did not speak them directly separately. Evaluation of the strength of integration between components is key, starting from intrusive communication. (knowledge-sharing) pre-contractual (knowledge-sharing). When the physical distance between the components increases (For example, the transition to microservices n)Communication should be balanced by reducing general knowledge (with clear API contracts and no direct access to data). Forecasting and managing variability, i.e. the rate of change, is also critical when designing for an appropriate communication level. If one component, such as an outdated system, does not have to change, then high integration strength or long distance is not a problem.
  • Decomposition of problems and assessment of complexity Approaches to breaking down complex tasks and objectively assessing their complexity, taking into account uncertainty
  • Local Vs Global Complexity How optimization of local complexity of individual components can lead to an increase in global complexity of the system
  • Modularity as a counterweight to complexity Modularity is key to building scalable and supported systems
  • The Boundaries of Knowledge and Abstraction How the Right Abstractions Create Effective Boundaries of Knowledge Creative approach to technical writing – using poetry in a technical book to better communicate complex concepts (Here Vlad talks about how genAI helped him write poetry for this book.)

Generally speaking, this book isn’t as easy as Learning DDD, but it’s still very useful for anyone who wants to build flexible, scalable, and supported software systems through the proper management of intercomponent relationships.

#Software #Architecture #DistributedSystems #SystemDesign #Patterns #Sofware #Metrics #Management