temporalio / temporalio/temporal

Support blue/green cluster deployment with incompatible cluster membership changes

Open
#848 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.