PartitionedClusterLayout

PartitionedClusterLayout is an abstract expression of a generic state-partitioned cluster.

The goal of this library is to provide a data structure suitable for synchronizing between cluster members that encapsulates a few important concepts:

Given two of these layout structures, the library can provide diffs and range transition plans for growing and shrinking the cluster in a controlled manner.

Custom partitioning strategies replica placement strategies are supported, see SimpleStrategy for an example.

Installation

If available in Hex, the package can be installed by adding partitioned_cluster_layout to your list of dependencies in mix.exs:

def deps do
  [
    {:partitioned_cluster_layout, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/partitioned_cluster_layout.