Roncajolo Gerald Software Architect @ Softway Medical t/ 06 71 50 61 53 grc@necol.org Dec. 2025 ressources: https://microservices.necol.org
"Architecture is about the important stuff. Whatever that is." — Ralph Johnson
"Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change." — Grady Booch
(1960s-1980s)
Characteristics:
(1980s-1990s)
Also called 2-tier architecture
(1990s-2000s)
(2000s-2010s)
(2010s-present)
While there is no precise definition of this architectural style, there are certain common characteristics
-Martin Fowler
Key benefits:
Independent deployment of individual services Explicit interfaces reducing unwanted coupling Better component encapsulation
Main trade-offs:
Performance overhead from remote calls More complex refactoring across service boundaries
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
-- Melvin Conway, 1968323
Microservices organize teams around business capabilities instead:
Team sizing follows the "Two Pizza Team" rule:
Benefits over traditional approach:
Some teams can be oriented around technical capabilities (e.g. platform teams)
Recommended reading to lean more about organizing software development teams
The Problem: The "Big Ball of Mud"
Common issues:
This isn't about being a monolith. It's about being poorly structured.
A well-structured monolith with:
"Start with a monolith, extract microservices when you need them."
Day 1: Domain Discovery & The Modular Monolith Creating a well-structured monolith as a foundation
Day 2: Data Decoupling Handling communication between services synchronously and asynchronously
Day 3: Production Readiness API Gateway, Circuit Breakers, Monitoring, CI/CD, and more
Architecture isn't about folder structure. It's about the decisions that are hard to change later. Choosing a variable name is design; choosing to split your database is architecture.