From Monolith to Microservices: How Software Architecture Evolved
This article traces the evolution of software architecture—from monolithic applications through vertical and SOA designs to modern microservices—detailing each style’s characteristics, advantages, and drawbacks to help developers understand when and why to adopt each approach.
Software Architecture Evolution
Software architecture has progressed from monolithic structures, through vertical and SOA architectures, to microservice architectures. This article outlines each style’s features, advantages, and disadvantages for learning purposes.
1.1.1 Monolithic Architecture
Characteristics:
1. All functionalities are integrated into a single project.
2. The whole application is packaged as a WAR file and deployed to a server.
3. Application and database are deployed separately.
4. Performance is improved by scaling both application and database clusters.
Advantages:
1. Simple architecture, low initial development cost, short cycle; ideal for small projects.
Disadvantages:
1. All functions in one codebase make large projects hard to develop, extend, and maintain.
2. Scaling performance relies on adding cluster nodes, which is costly and hits bottlenecks.
3. Technology stack is limited.
1.1.2 Vertical Architecture
Characteristics:
1. Projects are vertically split, turning a large project into multiple monolithic projects.
2. Data redundancy and high coupling exist between projects, e.g., duplicate customer information.
3. Interfaces between projects are mainly data synchronization, such as database-to-database sync over network.
Advantages:
1. Simple architecture, low initial cost, short cycle; suitable for small projects.
2. Vertical splitting prevents a single monolithic project from growing indefinitely.
3. Different projects can use different technologies.
Disadvantages:
1. All functions are still integrated in each project, making large systems hard to develop, extend, and maintain.
2. Performance scaling still depends on adding cluster nodes, incurring high cost and bottlenecks.
1.1.3 SOA Architecture
Characteristics:
1. Reusable common functions are extracted as components and offered as services.
2. Projects communicate with services via WebService, RPC, etc.
3. An Enterprise Service Bus (ESB) acts as a bridge between projects and services.
Advantages:
1. Extracting common functions as services improves development efficiency, reusability, and maintainability.
2. Optimization and clustering can be tailored to each service’s characteristics.
3. ESB reduces coupling between system interfaces.
Disadvantages:
1. Boundaries between systems and services become blurred, hindering development and maintenance.
2. Although ESB is used, service interface protocols are varied and numerous, complicating maintenance.
3. Services may be too coarse‑grained, leading to high coupling between system and services.
1.1.4 Microservice Architecture
Characteristics:
1. The service layer is completely separated, with each service extracted as an independent microservice.
2. Each microservice follows the single‑responsibility principle.
3. Microservices communicate via lightweight protocols such as RESTful.
Advantages:
1. Finer‑grained service decomposition enables resource reuse and higher development efficiency.
2. Precise optimization can be applied to each service, improving maintainability.
3. Decentralized architecture with lightweight communication (RESTful) is lighter than ESB.
4. Suits the internet era with shorter product iteration cycles.
Disadvantages:
1. Too many microservices increase governance overhead, making system maintenance difficult.
2. Distributed system development incurs high technical costs (fault tolerance, distributed transactions), posing a challenge for teams.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITFLY8 Architecture Home
ITFLY8 Architecture Home - focused on architecture knowledge sharing and exchange, covering project management and product design. Includes large-scale distributed website architecture (high performance, high availability, caching, message queues...), design patterns, architecture patterns, big data, project management (SCRUM, PMP, Prince2), product design, and more.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
