Microservices (overview)

The intentions behind Microservices is to loosely couple specific areas of a software solution. e.g. Web UI, Identity, Pricing etc.

A Microservices solution allows for a clear split in development work and teams, this facilitates faster development cycles and deliveries.

Each service is autonomous and can be developed in the most appropriate language using frameworks and patterns specific to that service.

Each micro service can be scaled (memory, CPU etc.) depending on their requirements.

Downsides include network latency and can often be difficult to debug.