Partitioning a domain is a useful way to achieve scalability of a system. The idea behind partitioning is that instead of putting everything in a single place, you divide the dataset or the work into multiple places based on some attribute, which is usually the identifier of the entity.

The division allows us to spread the storage and/or the processing to multiple machines or containers, and allows the horizontal scaling we were seeking to get.

One of the requirements that you might need to fulfill in a partitioned environment is to have a single master consumer per each partition. This is usually needed to achieve consistency and an ordered execution.

#kafka #rabbitmq #csharp #.net core #distributed computing #kubernates #message broker #partition

Distributed Balanced Partition-Queues Assignment Using Kubernetes statefulSet
1.50 GEEK