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

Make clean API for end-users without strict bound to Polly #51

Closed
Ceridan opened this issue Nov 5, 2020 · 1 comment
Closed

Make clean API for end-users without strict bound to Polly #51

Ceridan opened this issue Nov 5, 2020 · 1 comment
Labels
enhancement New feature or request
Milestone

Comments

@Ceridan
Copy link
Contributor

Ceridan commented Nov 5, 2020

Currently, we have strict bounds with Polly library. For example, in the settings classes we have code like this Action<DelegateResult<HttpResponseMessage>, TimeSpan> DoNothingOnBreak, where DelegateResult is a Polly class which exposed to the end-users. We want to get rid of it in the public classes to separate library API and details of it implementation.
It gives us huge benefits:

  • We can replace Polly with something else without breaking changes for users.
  • It relaxes the requirement to have the same version of Polly in the client code and our library, which is quite important to integration.

The downside of this solution is bunch of boilerplate code for wrapping some Polly classes.

@Ceridan Ceridan added the enhancement New feature or request label Nov 5, 2020
@Ceridan Ceridan added this to the v2.0.0 milestone Nov 5, 2020
@Ceridan Ceridan changed the title Make clean API for end-users without strict bound with Polly Make clean API for end-users without strict bound to Polly Nov 5, 2020
@Ceridan
Copy link
Contributor Author

Ceridan commented Nov 28, 2020

We have made some steps in #58 to achieve this goal. During this work we have realized that it is not so easy for now to make both clean API for the end-user and get rid of all Polly bindings in the API. Also to be honest we depends on Polly very heavily, so we decide to freeze this task for now. Maybe we will re-imagine our API later.

@Ceridan Ceridan closed this as completed Nov 28, 2020
@Ceridan Ceridan mentioned this issue Dec 5, 2020
Ceridan added a commit that referenced this issue Dec 5, 2020
Milestone v2.0.0

Milestone include major changes including breaking changes.
Full list of changes:
- Fix namespace clash between Dodo.HttpClient and System.Net.Http.HttpClient (#32)
- Add OverallTimeoutPolicy (#13)
- AddDefaultPolicies is renamed to AddResiliencePolicies (#45)
- CircuitBreaker is host specific by default. Host agnostic version is removed (#44)
- HttpClientSettings is replaced with ResiliencePoliciesSettings (#38)
- Add support of Retry-After http header (#40)
- Refactor API for end-users (#51)
- Re-write README (#24)
- Add .NET 5 support (#53)
- Fix flaky test (#52)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant