-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean up Gorums method options #56
Comments
Some further thoughts. I've been thinking about the name |
Is the idea still to make it work like the ordered option, such that you specify |
This is the question. I'm considering whether or not it makes sense to use
|
(It's been a long time and I don't have the bandwidth to look at the details).
A |
Below is one idea for the option combinations that we can support. It feels a bit unnatural to require What do you think? // New ordered synchronous RPC call (not a quorum call, but one-to-one call)
rpc OrderedRPC(Request) returns (Response) {
option (gorums.ordered) = true;
}
// Regular synchronous quorum call
rpc QuorumCall(Request) returns (Response) {
option (gorums.quorumcall) = true;
}
// This is the Qc_Future
rpc AsyncQuorumCall(Request) returns (Response) {
option (gorums.quorumcall) = true;
option (gorums.async) = true;
}
// Ordered quorum call (new)
rpc OrderedQuorumCall(Request) returns (Response) {
option (gorums.quorumcall) = true;
option (gorums.ordered) = true;
}
// This is the new Qc_Future with ordering (not yet merged)
rpc OrderedAsyncQuorumCall(Request) returns (Response) {
option (gorums.quorumcall) = true;
option (gorums.async) = true;
option (gorums.ordered) = true;
}
rpc Correctable(Request) returns (Response) {
option (gorums.correctable) = true;
}
rpc CorrectableStream(Request) returns (stream Response) {
option (gorums.correctable) = true;
} |
Closing since this is now implemented in the |
Currently, we have several options, some of which may be removed and others should be reorganized and renamed to make things easier to maintain.
gorums.qc
option togorums.quorumcall
. It is longer, but much clearer.gorums.qf_with_req
is often used, so perhaps we should once again reconsider whether or not we should require users to specify this; just make it the default.gorums.correctable_stream
can be replaced bygorums.correctable
and thestream
annotation at the output type (we can test for both of these in the code, so it shouldn't be difficult to implement). If necessary, we can follow a similar structure as the newgorums.ordered
option.gorums.qc_future
can be replaced withgorums.correctable
.gorums.qc_future
with two options:gorums.quorumcall
andgorums.future
. This can follow a similar structure as the newgorums.ordered
option.Before making hard decisions regarding the removal of certain options, e.g. future, we should implement test examples to use them to get more experience with it...
Opinions?
The text was updated successfully, but these errors were encountered: