Designing Microservices

It started from this question in StackOverflow about dependent microservices. I followed several references and found interesting things related to system architecture. I put those here for future references.

There is a model we can use for scalability, named Scale Cube. It has 3 (three) dimensions:

  • X-axis – Horizontal Duplication – Scale by Cloning
  • Y-axis – Functional Decomposition – Scale by Splitting Different Things
  • Z-axis – Data Partitioning – Scale by Splitting Similar Things

Defining Service Boundaries are necessary for creating good microservices. There are several references for this:

Building good microservices is hard, but it is not impossible. We need to do proper design and great discipline on defining boundaries, so we can scale our system easily.