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

Refactor retry policy implementation and remove operation timeouts #6784

Closed
jsquire opened this issue Jul 2, 2019 · 0 comments
Closed

Refactor retry policy implementation and remove operation timeouts #6784

jsquire opened this issue Jul 2, 2019 · 0 comments
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs
Milestone

Comments

@jsquire
Copy link
Member

jsquire commented Jul 2, 2019

Summary

The current implementation from the first preview mirrored the approach to retry exposed by the track one client. After discussion, a new approach was recommended by the architecture board, which separates out the options to define a retry from the policy that implements it. Since the majority case can be served by specifying options for retries, there is no need to require the actual policy to be set.

Each set of options currently allows for an operation-specific timeout to be applied, which is used by the underlying communications between the client and service. It was recommend that this concept be included as part of the retry policy and redefined as a "per-try" timeout.

Scope of Work

  • Create a set of retry options, which includes a per-try timeout setting, that can be used to configure a retry policy.

  • Remove the concept of specifying a retry policy on client options; make use of the retry options instead.

  • Remove the concept of specifying an "operation timeout" on client options; make use of the "per-try" timeout for the active retry policy instead.

  • Add a base retry policy (abstract) which can be implemented by developers with advanced needs.

  • Implement a concrete EventHubsRetryPolicy that is capable of being configured by the retry options.

Out of Scope

  • Changes to any references within the TrackOneClient code; that will remain as-is.

  • Updating clients options to consume the new types; this will be covered under a dedicated workstream.

Success Criteria

  • The new approach to retries and associated types have been created.

  • The track two code performs appropriate translations to the track one concepts.

@jsquire jsquire added Event Hubs Client This issue points to a problem in the data-plane of the library. labels Jul 2, 2019
@jsquire jsquire added this to the Sprint 156 milestone Jul 2, 2019
@jsquire jsquire self-assigned this Jul 2, 2019
@jsquire jsquire closed this as completed Jul 17, 2019
@github-actions github-actions bot locked and limited conversation to collaborators Mar 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs
Projects
None yet
Development

No branches or pull requests

1 participant