createServicePolicy: Convert callbacks to methods#5188
Merged
Conversation
f743806 to
c576f76
Compare
Both RetryPolicy and CircuitBreakerPolicy from the Cockatiel library allow for listening for events using `on*` methods. Our "service policy" allows for listening to some of the same events as well as the "degraded" event. For parity with Cockatiel — and for easier use in general — this commit removes the callbacks that `createServicePolicy` takes and replaces them with `on*` methods.
c576f76 to
a811bf6
Compare
zone-live
pushed a commit
that referenced
this pull request
Jan 27, 2025
Both RetryPolicy and CircuitBreakerPolicy from the Cockatiel library
allow for listening for events using `on*` methods. For instance, if you
have a retry policy, you can listen for when the function is retried
like so:
``` typescript
retryPolicy.onRetry(() => {
// ...
})
```
Our "service policy" allows for listening to some of the same events as
well as the "degraded" event. Instead of exposing `on*` methods,
however, `createServicePolicy` takes callbacks in an options bag:
``` typescript
createServicePolicy({
// ...
onRetry: () => {
// ...
}
)
```
For parity with Cockatiel — and for easier use in general — this commit
changes the API so that the object that `createServicePolicy` returns
now includes similar `on*` methods. This way you can say:
``` typescript
const policy = createServicePolicy({ ... });
policy.onRetry(() => {
// ...
});
```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation
Both RetryPolicy and CircuitBreakerPolicy from the Cockatiel library allow for listening for events using
on*methods. For instance, if you have a retry policy, you can listen for when the function is retried like so:Our "service policy" allows for listening to some of the same events as well as the "degraded" event. Instead of exposing
on*methods, however,createServicePolicytakes callbacks in an options bag:For parity with Cockatiel — and for easier use in general — this commit changes the API so that the object that
createServicePolicyreturns now includes similaron*methods. This way you can say:References
Progresses #4994.
Pre-requisite to #4990.
Changelog
(Updated in PR.)
Checklist