Backend Development 9 min read

Various Approaches to Service Decomposition in Microservice Architecture

The article explores multiple expert perspectives on how to split monolithic applications into microservices, discussing vertical and horizontal decomposition, business logic, stability, reliability, performance, team size, and practical trade‑offs to guide architects in designing scalable, maintainable systems.

Top Architect
Top Architect
Top Architect
Various Approaches to Service Decomposition in Microservice Architecture

We know microservices are a concept without a precise definition, similar to design principles, and any division must be analyzed case by case; the following classifications are therefore only reference material.

Service splitting is considered difficult because of granularity: too large a grain makes splitting unnecessary, while too small a grain creates problems in aggregation, deployment, call chains, and debugging.

Decomposition Approaches

Approach One (Vertical and Horizontal Splitting – Hu Zhong, Sina Weibo)

Vertical Splitting : Split based on business domains; tightly related business functions form a microservice, while relatively independent functions become separate services.

Horizontal Splitting : Split based on common, independent functionalities that are called by multiple services and have independent resources.

Approach Two (Alibaba Perspective)

Service splitting should meet business needs, avoid defining boundaries by team to prevent “territorial” conflicts, and keep maintenance costs (people, resources, time) lower than before splitting.

Consider release frequency: isolate the 20% frequently changing parts and deploy the stable 80% separately, following the 80/20 principle.

Approach Three (Li Yunhua’s Expert Guidance)

Based on business logic: group responsibilities into separate services.

Based on stability: separate stable modules from frequently changing ones.

Based on reliability: group high‑reliability core modules together, low‑reliability ones separately.

Based on performance: isolate high‑performance modules (e.g., full‑text search, order processing) into dedicated services.

Summary of Approaches

All prioritize business logic as the primary factor.

They share similar views on stability, reliability, independence, and scalability.

Splitting should be multi‑criteria, not a single rule; specific situations require flexible combinations.

Additional Discussion

When applying these criteria, conflicts may arise, such as differing numbers of services (e.g., 3 vs 6) depending on team size; a rule of three people per service is suggested for balanced responsibility.

Team composition, service stability, and release strategies must be considered together to achieve a scalable, maintainable architecture.

© The content is sourced from the original author; for further discussion, readers are invited to join the architect community.

backendarchitecturescalabilityMicroserviceservice decomposition
Top Architect
Written by

Top Architect

Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.

0 followers
Reader feedback

How this landed with the community

login 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.