redpanda-data / redpanda-data/redpanda
redpanda: support multiple RPC servers
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 12.6k
- Forks
- 792
- PR merge metrics
- No merged PRs in 30d
Description
Today, it is very difficult to do a rolling change for the RPC servers: there is only one server, so if anything needs to change, the user needs to have a pretty cluster-disrupting roll to do that change. For example, if the user has not enabled TLS and then needs to enable it, the user breaks their cluster during the roll: the TLS-added brokers cannot join the non-TLS cluster.
To support the TLS and non-TLS use case, we also need to fix up the RPC client. A TLS-enabled client may talk to a non-TLS port. If so, the client should retry another RPC server and hopefully, it will land on a TLS server at some point. Same thought in reverse: a non-TLS client can talk to a TLS client, it will fail, and it will retry and eventually stumble into a non-TLS server.
This is the gist of the idea and not comprehensively described; there are other edge cases to nail down during implementation.
JIRA Link: CORE-1104
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
Start by mapping the RPC server and RPC client paths, then review the TLS and non-TLS connection behavior described in the issue. Identify the edge cases around selecting and retrying RPC servers during a rolling configuration change. Done means multiple RPC servers can coexist and clients can reach a compatible server without disrupting the cluster.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100