From Monolith to Microservices: How Application Architecture Evolves
This article traces the evolution of application architectures—from vertical monolithic designs through RPC and SOA to modern microservices—explaining the motivations, key characteristics, deployment patterns, and trade‑offs of each approach for scalable, maintainable backend systems.
Overview
As business grows and projects scale, rapid iterative development demands an evolving architecture focused on service‑oriented transformation and governance. Decoupling service consumers from providers improves reuse, reduces duplicate work, enhances system reliability, and boosts team collaboration.
Below is a diagram of the architectural evolution.
1. Vertical (Monolithic) Architecture
Typical in early stages with single‑function, low‑traffic applications, it follows the classic MVC three‑tier model: view (presentation), controller (request dispatch), and model (business logic).
Characteristics: high maintenance cost, low deployment efficiency, poor team collaboration, reduced reliability (a single process failure can crash the whole node), and longer feature‑release cycles due to tight coupling.
2. RPC Architecture
Remote Procedure Call (RPC) enables process‑level communication, allowing callers to invoke remote services as if they were local. Popular open‑source RPC frameworks include Apache Thrift, Avro‑RPC, Hessian, and gRPC (HTTP/2 + protobuf).
In Java, RPC relies on serialization, socket communication, dynamic proxies, and reflection. Its three core components are:
Service Provider – defines and implements service interfaces on the server side.
Service Publisher – registers the local service as remotely callable.
Local Service Proxy – runs on the client, forwards calls to the remote service and returns results.
Characteristics: simple, efficient, and generic, forming the foundation for SOA. However, configuration can be cumbersome, load balancing is not built‑in, and tracing call relationships may be difficult.
3. SOA Architecture
Service‑Oriented Architecture (SOA) introduces coarse‑grained, service‑centric design with features such as automatic discovery, built‑in load balancing, autonomous services, and orchestration. Widely used frameworks include Dubbo/Dubbox, HSF, DSF, Coral Service, and Spring Cloud.
Dubbo’s official documentation is a recommended read for distributed service frameworks.
With a service registry, SOA achieves automatic service discovery, unified configuration, configurable routing, fault‑tolerant clustering, and comprehensive service governance (runtime control, lifecycle management, monitoring, security, and rapid fault location), greatly easing operations.
4. Microservice Architecture
Microservices are an evolution of SOA with finer‑grained services, containerized deployment, agile delivery, and automated operations. They maximize resource utilization and support DevOps practices.
In summary, the article outlines the macro‑level progression of backend architectures, setting the stage for deeper exploration in future posts.
Source: http://www.jianshu.com/p/2837a32ce39f
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.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
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.
