> Markdown version of [/videos/970-microservices-monoliths-an-annoying-discussion?t=1388](https://www.wearedevelopers.com/videos/970-microservices-monoliths-an-annoying-discussion?t=1388). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Microservices? Monoliths? An Annoying Discussion! Still debating monoliths versus microservices? Your deployment model isn't the problem—the secret to sustainable architecture is strict information hiding and empowered, independent teams. - **Speakers:** [Eberhard Wolff](https://www.wearedevelopers.com/@eberhard-wolff) - **Event:** World Congress 2024 - **Published:** August 20, 2024 - **Duration:** 25:05 - **URL:** https://www.wearedevelopers.com/videos/970-microservices-monoliths-an-annoying-discussion ## Summary The debate between monoliths and microservices often misses the root cause of architectural pain: poor modularization. While monoliths are frequently praised for their simplicity, they can easily devolve into massive dependency cycles where any change requires cross-team coordination and long deployment phases. Conversely, treating microservices as a magical cure often leads to distributed monoliths if the internal boundaries are tangled. The true success of highly complex systems—such as the Netflix architecture—stems from a "victory of information hiding," enabling developers to safely modify small components without needing to understand the entire system. To build sustainable systems, architects must organize modules around business functionality, such as invoicing or order processing, rather than underlying data structures. Relying heavily on centralized databases or data-rich event streams creates rigid dependencies that stifle agility. Applying classic concepts like Parnas' information hiding alongside localized bounded contexts ensures that each module restricts data leakage and maintains a stable interface. Using techniques like class-responsibility-collaboration (CRC) cards and the Bounded Context Canvas helps visualize these functional boundaries, proving that object-oriented abstractions scale seamlessly to team-level architectures. Microservices are ultimately a specific tool offering technical capabilities like independent scaling, isolated failover, and polyglot programming. However, migrating to a distributed system without granting teams the autonomy to deploy independently negates any productivity benefits. Technology cannot patch over organizational mistrust; successful software architecture requires aligning carefully modularized software boundaries with fully empowered, independent teams. **Keywords:** microservices architecture, monolithic systems, software modularization, information hiding, bounded contexts, dependency cycles, class-responsibility-collaboration, deployment pipelines, team autonomy, independent scaling, distributed monoliths, shared database bottlenecks, domain-driven design, polyglot programming, organizational anti-patterns ## Chapters 1. **Analyzing deployment constraints and the false simplicity of monoliths** (00:18) — Legacy monoliths often suffer from prolonged compilation times and heavily centralized weekly deployment cycles. 1. **Deconstructing the success of complex microservice architecture at Netflix** (02:45) — Maintaining isolated dependency graphs functions effectively through strategic modularization and strict information hiding boundaries. 1. **Identifying dependency cycles and structural decay in large monoliths** (05:34) — Closely coupled business entities create cascading dependency cycles that severely paralyze independent team deployments. 1. **Building organizational hierarchy to prevent poorly designed distributed monoliths** (07:13) — Replacing oversized classes with excessive microservices shifts architectural failure from code structure to network topology. 1. **Mitigating network failures caused by tightly coupled architectural modules** (09:43) — Interdependent microservices amplify system crashes and throttle performance through excessive cross-network communication. 1. **Applying information hiding to establish stable internal module interfaces** (11:24) — Concealing implementation details behind stable interfaces enables independent feature changes without breaking external dependencies. 1. **Designing system bounded contexts around functionality instead of data** (14:53) — Centralizing architecture around a shared database limits changeability by binding disparate functionalities to common schemas. 1. **Assessing technical trade-offs before migrating to a microservices architecture** (19:36) — Distinct application footprints provide critical advantages for targeted resource scaling and secure environment isolation. 1. **Trusting development teams with architectural autonomy to increase productivity** (21:25) — Forcing synchronized deployments entirely negates the development speed unlocked by distributed and independent services. 1. **Balancing modularization fundamentals with effective software engineering organization design** (23:08) — Successful service architecture heavily depends on aligning technical module boundaries with fundamental team structures. ## Related Moments - [Prioritizing modularity over the monolith versus microservices debate](https://www.wearedevelopers.com/videos/164-monoliths-a-love-story) (from "Monoliths: A love story") - [Transitioning architecture to microservices at Netflix](https://www.wearedevelopers.com/videos/482-building-a-culture-from-chaos) (from "Building a culture from chaos") - [Evaluating data storage limitations and monolithic architectural challenges](https://www.wearedevelopers.com/videos/746-swapping-low-latency-data-storage-under-high-load) (from "Swapping Low Latency Data Storage Under High Load") - [Evaluating microservices against traditional monolithic application design](https://www.wearedevelopers.com/videos/251-remote-driving-on-plant-grounds-with-state-of-the-art-cloud-technologies) (from "Remote Driving on Plant Grounds with State-of-the-Art Cloud Technologies") - [Deciding between discrete microservices and modular monolith application approaches](https://www.wearedevelopers.com/videos/1200-modularity-let-s-dig-deeper) (from "Modularity: Let's dig deeper") - [Evaluating the hidden costs and false promises of microservices](https://www.wearedevelopers.com/videos/1817-how-to-avoid-tech-hype-traps-josip-stuhli) (from "How to Avoid Tech Hype Traps - Josip Stuhli") ## Related Articles - [Why You Shouldn’t Build a Microservice Architecture](https://www.wearedevelopers.com/magazine/118-why-you-shouldn-t-build-a-microservice-architecture) - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [How to Avoid Over-Engineering](https://www.wearedevelopers.com/magazine/546-how-to-avoid-over-engineering) - [MLops – Deploying, Maintaining And Evolving Machine Learning Models in Production](https://www.wearedevelopers.com/magazine/115-mlops-deploying-maintaining-and-evolving-machine-learning-models-in-production) ## Related Jobs - [Software Solution Architekt](https://www.wearedevelopers.com/jobs/ext/1458613-software-solution-architekt) at **BWI GmbH** - [Senior Software Engineer, Client Apps Platform](https://www.wearedevelopers.com/jobs/ext/1773893-senior-software-engineer-client-apps-platform) at **GitHub** - [Senior Engineer, Infrastructure Platform](https://www.wearedevelopers.com/jobs/ext/328836-senior-engineer-infrastructure-platform) at **Intercom, Inc.** - [Senior Backend Engineer (Java)](https://www.wearedevelopers.com/jobs/ext/19369-senior-backend-engineer-java) at **Bonial International GmbH** - [Mid/Senior Full-Stack Engineer (Web-first)](https://www.wearedevelopers.com/jobs/ext/1210833-mid-senior-full-stack-engineer-web-first) at **SMG Swiss Marketplace Group** - [Cloud-Native Architect (all genders welcome) - Kubernetes, CNCF, MLOps](https://www.wearedevelopers.com/jobs/ext/101479-cloud-native-architect-all-genders-welcome-kubernetes-cncf-mlops) at **Rosenxt Group**