What are microservices?
Microservices are an architectural approach that allows the development of physically separated modular applications which are autonomous, enabling agility, rapid development, continuous deployment, and scaling.
An application is built as a set of services, similar to SOA, such that services communicate through standard APIs, for example, JSON or XML, and this allows the aggregation of language-agnostic services. Basically, a service can be written in the best language for the task the service is being created for.
Each service runs in its own process and is location neutral, thus it can be located anywhere on the access network.
Monoliths
The microservices approach is the opposite of the traditional monolithic software approach, which consists of tightly integrated modules that ship infrequently and have to scale as a single unit. Traditional Java EE applications and the JBCP calendar application in this book are examples of monolithic applications. Take a look at the...