Fundamentals 6 min read

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.

ITFLY8 Architecture Home
ITFLY8 Architecture Home
ITFLY8 Architecture Home
From Monolith to Microservices: How Software Architecture Evolved

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.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Software ArchitectureMicroservicesSystem DesignSOAmonolithic
ITFLY8 Architecture Home
Written by

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.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.