To begin with, let’s try to understand how the microservices architectural style evolved to the point that it is now a buzzword.
The term microservices was used for the first time in mid-2011 at a workshop for software architects. In March 2012, James Lewis presented some of his ideas about microservices. By the end of 2013, various groups from the IT industry started having discussions about microservices, and by 2014, the concept had become popular enough to be considered a serious contender for large-scale enterprise app development.
While there is no official definition available for microservices, understanding of the term is purely based on use cases and discussions held in the past.
In the year 2014, James Lewis and Martin Fowler came together and provided a few real-world examples for microservices(link here: http://martinfowler.com/microservices/).
What is a Microservice?
According to Microsoft:
Microservices architecture is a bunch of services, where each service is independently deployed and should implement a single business capability.https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices
Lewis and Fowler defined microservices as an architectural style that developers can utilize to develop a single application with the business logic spread across a bunch of small services, each having their own persistent storage functionality. Also, note its attributes: it can be independently deployable, can run in its own process, is a lightweight communication mechanism, and can be written in different programming languages.
Before we get into the details of a microservice, let’s quickly understand it’s predecessors:
- Monolithic Architecture
- Service Oriented Architecture(SOA)