Engine can redistribute deployments when scaling up #24013
Labels
component/zeebe
Related to the Zeebe component/team
kind/task
Categorizes an issue as a breakdown of low-level implementation detail from a parent issue
When scaling up, deployments containing processes, forms and drgs need to be redistributed to new partitions.
Each deployment exists with all metadata but without the actual binary resource in the state.
When redistributing, we can iterate through all deployments and rehydrate the full deployment create record.
If a resource was deleted after the deployment, we will only redistribute the metadata but not the full binary resource.
This is compatible with resource binding in that validation only occurs on the deployment partition when the deployment is created for the first time. On redistribution, validation is skipped.
We can redistribute deployments one-by-one or in batches. Since deployments tend to be large but few, batching might not be worth it.
To decide whether new deployments created during redistribution need to be enqueued for distribution to a partition immediately or not, we keep track of the type and key of the latest redistributed resource. If not all deployments are redistributed yet, a new deployment does not need to be distributed to new partitions yet.
Tasks
The text was updated successfully, but these errors were encountered: