explaingit

benfleis/throttler

Analysis updated 2026-07-18 · repo last pushed 2015-01-28

ClojureAudience · developerComplexity · 2/5DormantSetup · easy

TLDR

Throttler is a Clojure library that limits how fast function calls or messages run, using a token-bucket algorithm to set an average rate and burst size.

Mindmap

mindmap
  root((repo))
    What it does
      Rate limits function calls
      Token bucket algorithm
      Shares quota across methods
    Tech stack
      Clojure
      Async channels
    Use cases
      API rate limiting
      Pacing database writes
      Shared quota across calls
    Audience
      Backend developers
      Clojure developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Limit calls to an external API that caps requests per day using a shared token bucket.

USE CASE 2

Pace writes from a fast data source into a slower downstream database.

USE CASE 3

Share one rate limit quota across multiple API methods that hit the same service.

USE CASE 4

Allow short bursts of activity above the average rate while staying within an overall limit.

What is it built with?

ClojureAsync Channels

How does it compare?

benfleis/throttlergardnervickers/local-meetupsgardnervickers/untangled-components
LanguageClojureClojureClojure
Last pushed2015-01-282016-02-042016-10-19
MaintenanceDormantDormantDormant
Setup difficultyeasyhardmoderate
Complexity2/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Built on Clojure's async channels, so it requires a Clojure/core.async project setup.

Copy-paste prompts

Prompt 1
Help me set up a throttler with an average rate of 100 calls per second and a burst size of 1000.
Prompt 2
Show me how to share one throttler across three different functions that call the same rate-limited API.
Prompt 3
Explain how the token bucket algorithm in throttler balances average rate against burst size.
Prompt 4
Help me wrap a slow database write in throttler to pace it against a faster incoming data stream.

Frequently asked questions

What is throttler?

Throttler is a Clojure library that limits how fast function calls or messages run, using a token-bucket algorithm to set an average rate and burst size.

What language is throttler written in?

Mainly Clojure. The stack also includes Clojure, Async Channels.

Is throttler actively maintained?

Dormant — no commits in 2+ years (last push 2015-01-28).

How hard is throttler to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is throttler for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.