Microservices is an emerging architecture for the distributed development of cloud applications. In a microservices architecture, a single large cloud application (“the monolith”) is decoupled into a set of very small applications (“microservices”).

Why microservices?

Agility: Microservices enables organizations to independently iterate and ship features, reducing the time required to meet the needs of the market.

Organizational Flexibility: Microservices enables organizations to create independent teams of different sizes and structures based on the needs of a given feature or function. For a financial processing engine, a team with a large QA function is warranted. For a recommendation engine, perhaps a data scientist and a machine learning engineer.

Recruiting and Onboarding: Engineers want to work with the latest technology. Microservices enables you to incrementally adopt and test new technologies. You also want engineers to be productive from the day they start. With microservices, engineers can start coding on a small microservice, with no need to master a complex code base.