Solution

A solution for this problem is to logically divide the state of the system in to partitions which can then be served separately with minimal dependency on one another.

Partitioning can be defined as the concept of dividing state and compute into smaller units to improve scalability and performance of a system. Partitioning is more suited for stateful Microservices than for stateless Microservices. Partitioning will define logical boundaries to ensure that a particular service partition is responsible for a portion of the complete state of the service. The services will be replicated on every partition.

Before implementing partitioning, it is important to device a partition strategy which supports scale out. Partition strategy should also ensure even distribution of the load across partitions.

The following figure illustrates a system which uses partitioned data store:

Partitioning (Solution)

Microsoft Azure Service Fabric natively supports partitioning for stateful Microservices. Service Fabric offers the following three choices for partitioning Microservices:

  • Ranged partitioning
  • Named partitioning
  • Singleton partitioning

More of Service Fabric partitioning can be found at: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-concepts-partitioning/.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset