Why and when you should consider it...
...And when you shouldn't.
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
-- James Lewis and Martin Fowler
Resources
Service Layer
Repositories
Data Mappers / ORMs
Gateways
Domain
Http Client
Simple design
Easy communications
Why need more...
...And it scales.
Load Balancer
Resources
Service Layer
Repositories
Data Mappers / ORMs
Gateways
Domain
Http Client
Ordering
Payment
Product
Shipment
Ordering
Payment
Product
Shipment
Ordering
Payment
Product
Shipment
Ordering
Payment
Product
Shipment
Ordering
Payment
Product
Shipment
Product
Payment
Shipment
Shipment
Ordering
Build Server
Code Repo
Build
Run unit tests
Clone
Run integration tests
https://my.microservice.com/
Swap
Destroy
https://my.microservice.com/
Webhook