Skip to content

Microservices architecture

Microservices architecture is a specific implementation of the [[Service-Oriented Architecture (SOA)]] philosophy, specifically adhering to a decentralized approach.^[600-developer__principle__SOA-ESB-MicroService.md]

Core Philosophy

Microservices architecture falls under the umbrella of SOA, which is characterized by distributed computing where services are loosely coupled, encapsulated, and interact via defined service contracts.^[600-developer__principle__SOA-ESB-MicroService.md] While SOA is a conceptual framework that does not mandate a specific implementation style, Microservices represent the "decentralized" realization of this concept.^[600-developer__principle__SOA-ESB-MicroService.md]

This decentralized approach is primarily driven by a requirement for extensibility (scalability), contrasting with centralized implementations like the Enterprise Service Bus (ESB).^[600-developer__principle__SOA-ESB-MicroService.md]

Implementation and Frameworks

Because Microservices architecture is decentralized, it relies on distributed service frameworks to handle backend service governance.^[600-developer__principle__SOA-ESB-MicroService.md]

Common frameworks used to implement this architecture include:

  • Dubbox
  • Spring Cloud
  • HSF (High-speed Framework, noted as a best practice by Alibaba)^[600-developer__principle__SOA-ESB-MicroService.md]

These frameworks are often combined with technologies like Docker and Kubernetes to manage the complex lifecycle of distributed services.^[100-inbox-microservices-with-node-js-and-react.md]

Common Patterns

Microservices architectures typically employ specific patterns to handle communication and data management between independent services:

  • Event Bus / Event Broker: Services communicate through events rather than direct REST calls in some implementations, decoupling the services further.^[100-inbox-microservices-with-node-js-and-react.md]
  • Streaming Servers: Technologies like NATS Streaming Server are often used to manage event communication between services in complex applications, such as E-commerce platforms.^[100-inbox-microservices-with-node-js-and-react.md]
  • [[Service-Oriented Architecture (SOA)]]
  • [[Enterprise Service Bus (ESB)]]
  • [[Software Architecture]]

Sources

  • 100-inbox-microservices-with-node-js-and-react.md
  • 600-developer__principle__SOA-ESB-MicroService.md