One of the biggest challenges in the Microservice architecture is to decompose services into reusable standalone services which can execute in isolation. The traditional monolithic architecture often contains inseparable redundant implementation of modules which minimizes the opportunities of reuse. With modules tightly coupled, maintaining it, in terms of upgrading, scaling, or troubleshooting it without affecting the whole application becomes impossible:
Queue driven decomposing strategy (Problem)
Decomposing tasks in to discrete sub tasks which can be encapsulated as standalone services is the fundamental concept behind the Microservice based architecture. These standalone services or Microservices are best reused if their inputs and outputs are standardized. A system comprising of Microservices will have the flexibility to independently scale at the level of each Microservice. This introduces the complexity of balancing load among multiple...