Assignments

Assignments and agents

Assignment

An assignment is an association between a sync and an agent that is processsing that sync.

How syncs are processed

In a cluster of agents with more than one member, synchronization work is balanced among all elements within the cluster. Each synchronization task is handled by a single agent at a time. If an agent is added to the cluster or if an agent crashes, a rebalancing process is triggered, redistributing all assigned synchronization tasks.

When an agent crashes, the synchronization tasks assigned to the failed agent are reassigned to other agents within the cluster. This mechanism is somewhat similar to Kafka’s rebalancing process, which relies on Zookeeper. Also it is similar to shard management in some databases.


Last modified January 5, 2025: Fixed rabbitMq connectors and tests (cb0363b)