Microservices

Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are highly maintainable and testable, loosely coupled and independently deployable.

from Zero to Hero Complete practical approach

Introduction to Microservices


  • Why Microsevices?
    • The Monolithic Architecture
    • Problems with Monolithic Architecture
  • What are Microsevices?
    • The Microservice Architecture
    • Solutions to the problems of Monolithic Architecture

How to decompose an application into services?


  • Decomposition application by business capbilities
  • Decomposition application by subdomain
  • Decomposition application by creating self-contained service

Microservices communication style


  • Remote Procedure Invocation
  • Messaging
  • Domain-specific protocol
  • Idempotent Consumer

External API


  • Remote Procedure Invocation
  • API Gateway
  • Backend for front-end

Service discovery


  • Client-side discovery
  • Server-side discovery
  • Service registry
  • Self registration
  • Third party registration

Reliability


  • Circuit Breaker

Security


  • Access Token

Observability


  • Log aggregation
  • Application Metrics
  • Distributed tracing
  • Exception tracking
  • Health check API

Microservice chassis


  • Externalized configuration
  • Logging
  • DHealth checks
  • Metrics
  • Distributed tracing

Data Management


  • database per service
  • Shared database among services
  • SAGA
  • CQRS