Building Microservices
Before diving into the building process, let's revisit the characteristics a chunk of code has to possess in order to be qualified as a microservice. We will do it in no particular order:
The size of the source code of one microservice should be smaller to that of an SOA, and one development team should be able to support several of them.
It has to be deployed independently of other services.
Each has to have its own database (or schema or set of tables), although this statement is still under debate, especially in cases when several services modify the same data set or the inter-dependent data sets; if the same team owns all of the related services, it is easier to accomplish. Otherwise, there are several possible strategies we will discuss later.
It has to be stateless and idempotent. If one instance of the service has failed, another should be able to accomplish what was expected from the service.
It should provide a way to check its health, meaning that the service...