Background & Evolution
- Evolved from SOA (Service-Oriented Architecture)
- More lightweight, cost-effective, and startup-friendly
- Focuses on service-level modularization of systems
Core Concept
- Breaks down systems into small, independent services
- Each service handles a specific piece of functionality
- Follows the same principle as modular programming
Size & Structure
- No strict size rule — “right-sized” for the use case
- Emphasis on cohesive, independent, and manageable components
Communication Model
- Protocol-aware interoperability (commonly REST)
- Consistent communication patterns across services
- Enables polyglot development (multiple languages)
- Services can call one another freely (adds flexibility and complexity)
Architecture Style
- Promotes loose coupling and strong cohesion
- Often combined with hybrid architectures for control and stability
- Designed to scale across teams and environments
Infrastructure & Cost
- Can be built entirely with open-source software
- Runs on commodity hardware or cloud-native platforms
- Low entry cost compared to SOA
Benefits vs. Challenges
Benefits | Challenges |
---|---|
High agility in development and deployment | Increased operational complexity |
Easy to scale individual components | Requires strong service governance |
Global distribution and fault isolation | Complex service-to-service communication |
Supports polyglot (multi-language) development | Difficult debugging across multiple services |
Encourages modular and maintainable code | Higher infrastructure and monitoring overhead |
Faster time-to-market for features | Data consistency can be harder to manage |
Enables independent team ownership | Requires robust CI/CD and DevOps culture |