Feature #13688
open[API] optional asynchronous flag for create/update operations
Description
Background: Some APIs (e.g., "create group") are slow because they recompute the permission graph. If the API responds before the permission graph is updated, and the client tries to retrieve the new/updated object right away, it might receive a confusing 404 error.
Usually, clients want the simplicity of immediate consistency. However, sometimes they would rather have API calls return faster: e.g., when issuing many create/update calls in a row.
For these cases, the API should accept an "asynchronous update" flag with create/update requests, indicating the client doesn't need a guarantee that the update is visible (i.e., permission graph is updated) at the moment it receives its response. In most cases (like "create collection") this will be a no-op. For transactions that update the permission view, the view should be updated after the response has been returned to the client.
The async flag should be advertised in the discovery doc via *_requires_parameters methods.
Related issues
Updated by Tom Clegg over 6 years ago
- Blocked by Bug #13593: [API] Sequence of "create group" requests runs slowly, and can crash API server added