apple / apple/foundationdb

Provide a more standard RPC client interface

Open
#2,302 10 comments 10 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

Our current client/server exchange relies on a custom protocol and the presence of sophisticated logic on the client side of that exchange. There would be value in providing as an additional option a more standard RPC interface (e.g. using gRPC), with all of the complicated logic located on the RPC server. In particular, this gives clients the option of not wrapping our native C client library and also not inheriting the complicated versioning story that doing so entails.

It could also be used as a means to provide a different access method to the cluster (i.e. not through the cluster file with its cluster connection string) and support for greater numbers of clients without subjecting the cluster itself to connections from all of them.

Contributor guide

Open the contributing guide

Research direction

The issue does not name files, tests, or an entry point. Start by mapping the existing client/server protocol and its versioning and cluster-connection paths, then investigate how a gRPC-based server-side interface could fit. Done would require an agreed design and implementation scope for the alternate client and cluster access path.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, grpc
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.