# SGrondin/bottleneck

Job scheduler and rate limiter, supports Clustering

Repository: https://github.com/SGrondin/bottleneck
Canonical: https://ross.abutalabs.com/products/bottleneck
Language: JavaScript
License: MIT
License Family: permissive
Topics: rate-limiting, rate-limiter, scheduler, limiter, clustering, throttling, throttle
Last push: 2024-01-23T06:09:35+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4615, "days_push": 953, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2003, forks 93 (observed 2026-08-28T04:06:04.501301+00:00)

## What it is
Bottleneck is a lightweight, zero-dependency task scheduler and rate limiter for Node.js and the browser. It supports distributed rate limiting across multiple Node.js instances using atomic Redis operations, including Redis Cluster and Sentinel.

## Use cases
- limit api requests to 3 per second
- throttle calls to an external api
- rate limit jobs across multiple node.js instances
- queue async tasks with max concurrency
- retry failed jobs automatically
- batch requests to respect api quotas

## When to choose
- you need to respect api rate limits in node.js or the browser
- you need distributed rate limiting across a cluster of node processes
- you want a lightweight, zero-dependency throttling solution
- you need job scheduling with retries, batching, or priority support

## When to avoid
- you need rate limiting at the http server or proxy level rather than in application code
- your stack is not javascript
- you need a full workflow or job queue system with persistence and dashboards

## Facets
- artifact type: library
- maturity: stable
- function: rate-limiting, scheduling, concurrency, caching
- domain: developer-tools, backend, apis
- platform: browser
- tags: rate-limiter, task-scheduler, throttling, redis-clustering, zero-dependency, async, automation, nodejs, javascript

## Member repositories
- SGrondin/bottleneck (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:04.501301+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:01:42.568122+00:00, confidence not recorded.
  - readme: https://github.com/SGrondin/bottleneck (fetched 2026-08-28T04:06:04.501301+00:00, sha 72c4aa25f3f2)
  - registry_npm: https://registry.npmjs.org/bottleneck (fetched 2026-08-29T10:41:44.776710+00:00, sha ebe93e6ecbcf)
- Data as of 2026-08-30T08:39:29.467469+00:00.
