Skip to content
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

AIP-121's Strong Consistency Section Should Include Long-Running Operation Example #1238

Open
matttproud opened this issue Oct 5, 2023 · 0 comments

Comments

@matttproud
Copy link

matttproud commented Oct 5, 2023

AIP 121's strong consistency section offers a list of examples (as of the time of filing this issue):

  • Following a successful create that is is latest mutation on a resource, a get request for a resource must return the resource.
  • Following a successful update that is the latest mutation on a resource, a get request for a resource must return the final values from the update request.
  • Following a successful delete that is the latest mutation on a resource, a get request for a resource must return NOT_FOUND (or the resource with the DELETED state value in the case of soft delete)

Meanwhile, that same section mentions:

For methods that operate on the management plane, the completion of those operations (either successful or with an error, LRO or synchronous) must mean that the state of the resource's existence and all user-settable values have reached a steady-state.

The examples list would benefit from explicit inclusion of a long-running operation (LRO) so that the semantics of LRO in the context of resource-oriented development are more obvious to implementers/integrators. Namely, LRO in the context of resource-oriented development seems to be inconsistent with the responses enumerated in the methods table. Could a Create return a LRO for a resource that takes a long time to create? If so, the semantics should be spelled out, and possibly the methods table needs some extra treatment.

As a secondary nit, I would recommend replacing "LRO" in this AIP page with "long-running operation" and linking to AIP 151. Two reasons: AIP 151 is a subsequent AIP, and "LRO" may be less well socialized than the long-form name "long-running operation."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant