Microservices

Characteristics of Microservices

  1. Componentization via services
    replace independently, upgrade independently

  2. Organized around business capabilities
    team orgination thing

  3. Products not Projects

  1. Smart endoints and dumb pipes
    pipe just for delivery message

SOA - ESB - route message , translate message
Microservices - pipe must be dumb, endpoint/application must be smart.

  1. Decentralized Governance
  2. Decentralized Data Management
    no central group, miniimum connectivity

each service gets its own data storage and does not share that data directly with anybody else.

all sharing has to go throught the services that wrap the data

  1. Infrastructure Automation
    CI CD.

  2. Design for failure
    Chaos monkey

handle failure.

  1. Evolutionary Design
Monolith Microservice
Simplicity Partial Deployment
Consistency Availability
Inter-module refactoring Preserve Modularity
Multiple Platforms

Command Query Responsibility Segregation
Event souring