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

BenefitsChallenges
High agility in development and deploymentIncreased operational complexity
Easy to scale individual componentsRequires strong service governance
Global distribution and fault isolationComplex service-to-service communication
Supports polyglot (multi-language) developmentDifficult debugging across multiple services
Encourages modular and maintainable codeHigher infrastructure and monitoring overhead
Faster time-to-market for featuresData consistency can be harder to manage
Enables independent team ownershipRequires robust CI/CD and DevOps culture