temporalio / temporalio/temporal
Support blue/green cluster deployment with incompatible cluster membership changes
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
Is your feature request related to a problem? Please describe.
Sometimes a backward-incompatible change in the cluster membership protocol is needed. In this case a newly deployed instances will not be able to reach the old one and the cluster will be partitioned between the old and new versions. This leads to downtime during deployment due to constant shard stealing between the partitions.
Describe the solution you'd like
Provide a mechanism to not distribute history and matching shards to the newly added hosts while they are deployed. After the deployment is complete flip a config switch to using only the newly added hosts for shard hosting. This way the deployment of such an incompatible version would be possible without downtime.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by locating cluster membership, shard distribution, and deployment configuration; done means a blue/green deployment can keep history and matching shards off new hosts until a config switch moves hosting to them without downtime.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100