https://github.com/hfreire/perseverance
Make your functions :muscle: resilient and :traffic_light: fail-fast to :poop: failures or :watch: delays
https://github.com/hfreire/perseverance
circuit-breaker function github-actions nodejs persistence rate-limiting resiliency retry
Last synced: about 1 year ago
JSON representation
Make your functions :muscle: resilient and :traffic_light: fail-fast to :poop: failures or :watch: delays
- Host: GitHub
- URL: https://github.com/hfreire/perseverance
- Owner: hfreire
- License: mit
- Created: 2017-11-02T20:24:19.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-23T20:26:26.000Z (over 2 years ago)
- Last Synced: 2025-02-27T15:05:53.767Z (over 1 year ago)
- Topics: circuit-breaker, function, github-actions, nodejs, persistence, rate-limiting, resiliency, retry
- Language: JavaScript
- Homepage:
- Size: 2.85 MB
- Stars: 13
- Watchers: 3
- Forks: 2
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Make your functions :muscle: resilient and :traffic_light: fail-fast to :poop: failures or :watch: delays
[](https://github.com/hfreire/perseverance/actions?workflow=ci)
[](https://coveralls.io/github/hfreire/perseverance?branch=master)
[](https://snyk.io/test/github/hfreire/perseverance)
[](https://github.com/hfreire/perseverance/releases)
[](https://www.npmjs.com/package/perseverance)
[](https://www.npmjs.com/package/perseverance) [](https://greenkeeper.io/)
> Add rate limit, retry and circuit-breaker behaviour to your functions.
### Features
* Limits :hand: rate of executions to comply with third-party API limits :white_check_mark:
* Retries :shit: failing executions in temporary, unexpected system and :boom: network failures :white_check_mark:
* Uses circuit breakers to :traffic_light: fail-fast until it is safe to retry :white_check_mark:
* Supports [Bluebird](https://github.com/petkaantonov/bluebird) :bird: promises :white_check_mark:
### How to install
```
npm install perseverance
```
### How to contribute
You can contribute either with code (e.g., new features, bug fixes and documentation) or by [donating 5 EUR](https://paypal.me/hfreire/5). You can read the [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute with code.
All donation proceedings will go to the [Sverige för UNHCR](https://sverigeforunhcr.se), a swedish partner of the [UNHCR - The UN Refugee Agency](http://www.unhcr.org), a global organisation dedicated to saving lives, protecting rights and building a better future for refugees, forcibly displaced communities and stateless people.
### Used by
* [request-on-steroids](https://github.com/hfreire/request-on-steroids) - An HTTP client :sparkles: with retry, circuit-breaker and tor support :package: out-of-the-box
* [facebook-login-for-robots](https://github.com/hfreire/facebook-login-for-robots) - Facebook Login for 🤖 robots
### License
Read the [license](./LICENSE.md) for permissions and limitations.