RateLimiterService.
Effect’s Built-in RateLimiter
Create rate limiters directly usingRateLimiter.make:
Algorithms
| Algorithm | Behavior | Best For |
|---|---|---|
token-bucket | Smooth, evenly distributed requests (default) | Sustained traffic |
fixed-window | Allows bursts at start of each interval | Bursty workloads |
Compose Multiple Limits
Chain rate limiters for tiered limits (common with RPC providers):Weighted Costs
Some operations cost more than others (e.g.,eth_getLogs vs eth_blockNumber):
voltaire-effect RateLimiterService
Thevoltaire-effect package wraps Effect’s RateLimiter with Ethereum-specific features:
Global + Per-Method Limits
Configure different limits for different RPC methods:Fail-Fast vs Delay
Control behavior when limits are exceeded:Real-World: RPC Provider Limits
Common provider rate limits:| Provider | Free Tier | Paid Tier |
|---|---|---|
| Infura | 10 req/sec | 100+ req/sec |
| Alchemy | 25 CU/sec | 300+ CU/sec |
| QuickNode | Varies | Varies |
| Public RPCs | 1-5 req/sec | N/A |
API Reference
RateLimiter.make
RateLimiter.withCost
DefaultRateLimiter
See Also
- Effect RateLimiter source
- voltaire-effect RateLimiter Service
- Rate Limiting utilities - Non-Effect rate limiting
- Retry utilities - Combine with rate limiting

