Skip to content

Microservices (MSA)

Microservices (MSA)

Microservices Architecture

1. Overview of Microservices Architecture (MSA), the Core of Agile Digital Transformation

    flowchart LR
    A["Large monolithic structure"] -- "Transition to independent deployment & loose coupling" --> B["Microservices (MSA)"]
  

Definition: A software architecture style that decomposes a single large application into small, independently deployable service units that interact with one another through APIs.

Characteristics: (Loose coupling) Services can be deployed and scaled independently, enabling fault isolation and minimizing the impact of change. (Polyglot) Supports a polyglot architecture in which each service can freely choose its own optimal technology stack. (Cloud-native) Optimized for containerized, orchestrated environments, naturally aligning with cloud-native strategy.


2. Architectural Structure and Core Technologies of MSA

A. MSA Components and Interaction Model (Inner/Outer Architecture)

    flowchart LR
    A["Monolithic structure<br/>(tight coupling)"] -->|"Challenge<br/>(failure propagation / deployment bottleneck)"| B{"Transition strategy"}
    B -->|"Service decomposition"| C["MSA structure<br/>(independent services)"]
    B -->|"Communication standardization"| D["API Gateway<br/>(operational efficiency)"]

    C --> E["Agile digital transformation<br/>(scale & agility)"]
    D --> E
  
CategoryKey ComponentRole
API GatewayEntry PointAuthentication, authorization, routing, rate limiting
Service DiscoveryRegistryAutomatic identification of service locations (e.g., Netflix Eureka)
Config ServerCentralized ConfigUnified management of per-service configuration values (e.g., Spring Cloud Config)
Circuit BreakerFault TolerancePrevents propagation of service failures (e.g., Resilience4j)

B. Monolithic vs. Microservices (MSA) Comparison (Evolutionary Perspective)

    flowchart LR
    subgraph A["Existing System (Monolithic)"]
        A1["Tight coupling"]
        A2["Single technology stack"]
    end

    subgraph TRANS["Transition Strategy (Evolution)"]
        direction TB
        T1["Service decomposition"]
        T2["Operational automation (DevOps)"]
    end

    subgraph B["Target System (MSA)"]
        B1["Independent services"]
        B2["Polyglot"]
    end

    A --> TRANS
    TRANS --> B
  
Comparison ItemMonolithic ArchitectureMicroservices Architecture
Deployment unitEntire application (single)Individual services (many)
ScalabilityScale the whole systemScale only the services that need it
Failure impactCan propagate across the whole systemFailure isolation is easy
Data managementCentralized DBDecentralized, per-service DB

3. MSA Adoption Strategy and Success Considerations

CategoryKey Strategy and ConsiderationsExpected Benefit
Domain-Driven DesignStrategic design (Bounded Context)Establishes clear service boundaries centered on business domains
DevOps & AutomationInfrastructure automation is essentialA CI/CD system is essential for deploying and operating numerous services
Distributed data consistencyUse of the Saga pattern and event sourcingResolves data consistency issues in distributed environments
ObservabilityDistributed tracing (Zipkin, Jaeger)Visualizes complex inter-service call flows and diagnoses issues