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

Consider how to handle default polling interval for LROs #14683

Closed
jhendrixMSFT opened this issue May 19, 2021 · 2 comments
Closed

Consider how to handle default polling interval for LROs #14683

jhendrixMSFT opened this issue May 19, 2021 · 2 comments
Assignees
Labels
Azure.Core blocking-release Blocks release Client This issue points to a problem in the data-plane of the library. design-discussion An area of design currently under discussion and open to team and community feedback. feature-request This issue requires a new behavior in the product in order be resolved.

Comments

@jhendrixMSFT
Copy link
Member

jhendrixMSFT commented May 19, 2021

The current track 2 implementation requires that callers pass a polling interval to be used if the service doesn't return a retry-after header. While this is an improvement over track 1, there is a concern that customers might have a difficult time in selecting an appropriate value. To add to the complexity, there really is no universal one-size-fits-all value. For reference, the ARM RPC spec specifies a default value of 60 seconds in absence of a retry-after header, however some teams have expressed concerns that this value is too high in some scenarios (this comes back to the no universal value problem). Conversely, polling too frequently can lead to quota exhaustion (thus throttling) when performing operations at scale (e.g. Terraform). Finding the right balance is often context-dependent, which is why we required callers to provide a value in the first place (e.g. AKS wants complete control over this, and finds our current track 1 design cumbersome).

One idea, provided by the AKS team, is that different RPs would specify their own, appropriate, default polling interval. How this would be integrated with the SDK is TBD. And we'd have to decide how to handle the case where RPs don't supply a value.

Ideally, RPs would always return an appropriate retry-after header value. All SDKs would benefit from such a solution.

@JeffreyRichter
Copy link
Member

Let's not do anything now. But, let's add a comment to give customers a suggestion.
We can do something in the future if a customer problem arises.

@RickWinter RickWinter added Client This issue points to a problem in the data-plane of the library. Azure.Core labels Jul 22, 2021
@RickWinter RickWinter added design-discussion An area of design currently under discussion and open to team and community feedback. feature-request This issue requires a new behavior in the product in order be resolved. and removed Track2 labels Sep 13, 2021
@RickWinter RickWinter added this to the Backlog milestone Sep 13, 2021
@jhendrixMSFT jhendrixMSFT added the blocking-release Blocks release label Oct 21, 2021
@RickWinter RickWinter modified the milestones: Backlog, [2021] November Oct 21, 2021
@jhendrixMSFT
Copy link
Member Author

Fixed in preview.30 of the code generator.

@github-actions github-actions bot locked and limited conversation to collaborators Apr 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Azure.Core blocking-release Blocks release Client This issue points to a problem in the data-plane of the library. design-discussion An area of design currently under discussion and open to team and community feedback. feature-request This issue requires a new behavior in the product in order be resolved.
Projects
None yet
Development

No branches or pull requests

3 participants