feat: AIP-151 – Long-running operations#17
Conversation
This AIP presented some interesting issues around wording: At @mkistler's request, we were using the term operation where AIPs previously used method. I think we might need to use the term endpoint for that purpose so that we can use operation for this one.
|
Note to self: Fleshed out sample still needed. |
| } | ||
| ``` | ||
|
|
||
| - If the `done` field is `true`, then one and exactly one of the `response` and |
There was a problem hiding this comment.
(forgot to submit) Should we care about partial responses? Meaning the operation partially succeeded and returned some of the data with an error.
In that case, should we specify that StatusMonitor.error should only encompass errors that aborted the entire operation?
| error response (AIP-193), similar to any other method. | ||
|
|
||
| Errors that occur over the course of an request **may** be placed in the | ||
| metadata message. The errors themselves **must** still be represented with a |
There was a problem hiding this comment.
In what cases should the error be placed in StatusMonitor.metadata but not on StatusMonitor.error?
There was a problem hiding this comment.
Partial failures, for sure.
| _never_ be needed. If response data might be added in the future, define an | ||
| empty message for the RPC response and use that. | ||
| - The metadata type is used to provide information such as progress, partial | ||
| failures, and similar information on each `GetOperation` call. The metadata |
There was a problem hiding this comment.
oh I see I should have read until the end, so the guidance if I understand correctly:
A. Errors preventing the operation to start -> (AIP-193)
B. Error making the entire request unsuccessful, (e.g a 500 on a downstream service) -> StatusMonitor.error populated, with optionally error metadata in StatusMonitor.metadata. StatusMonitor.response must not be populated.
C. Any partial failures -> StatusMonitor.response populated, and error metadata in StatusMonitor.metadata. StatusMonitor.error must not be populated.
D. Successful request no errors -> StatusMonitor.response populated, and optionally metadata in StatusMonitor.metadata. StatusMonitor.error must not be populated.
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
|
A couple of points to discuss on this one:
|
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
This might be my own pre-conceived biases, but this feels worse to me than a clear structure where all the "additional properties" go. It also ensures that the "base" structure can have new properties added to the main struct in a backwards-compatible way. |
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
|
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
This AIP presented some interesting issues around wording: At @mkistler's request, we were using the term "operation" where AIPs previously used "method".
I think we might need to use the term "endpoint" for that purpose so that we can use "operation" for this one. Initially, I tried to use "execution" for the concept needed here, but it did not work well.