Code Explainers
Code explainers tagged #rate-limiting
ruby
class Api::MessagesController < ApiController before_action :authenticate_api_key! rate_limit to: 100,
Layered API rate limiting in Rails
rate-limiting
api-authentication
throttling
Intermediate
9 steps
java
@AutoConfiguration @EnableConfigurationProperties(RateLimiterProperties.class) @ConditionalOnClass(RateLimiter.class) public class RateLimiterAutoConfiguration {
Building a Spring Boot rate-limiter auto-config
auto-configuration
conditional-beans
rate-limiting
Intermediate
7 steps
php
<?php namespace App\RateLimiting;
Sliding-window rate limiting with Redis sorted sets
rate-limiting
redis
sorted-sets
Advanced
8 steps
ruby
class SyncContactsJob < ApplicationJob queue_as :external_api MAX_CONCURRENCY = 5
Rate-limited CRM sync in a Rails job
background-jobs
rate-limiting
redis
Advanced
9 steps
go
package middleware import ( "log"
Per-IP rate limiting middleware in Gin
rate-limiting
middleware
concurrency
Intermediate
8 steps
go
package middleware import ( "net/http"
A per-IP rate limiter middleware in Gin
rate-limiting
token-bucket
middleware
Intermediate
8 steps
java
public class SlidingLogRateLimiter { private final int maxRequests; private final long windowMillis;
How a sliding-log rate limiter works
rate-limiting
concurrency
sliding-window
Advanced
8 steps
rust
use std::time::Duration; use axum::{ extract::State,
Rate-limit errors as Axum responses
error-handling
rate-limiting
http-headers
Intermediate
6 steps
typescript
export class Semaphore { private available: number; private readonly waiters: Array<() => void> = [];
Building an async Semaphore in TypeScript
concurrency
async-await
promises
Advanced
6 steps
javascript
class TokenBucket { constructor({ capacity, refillPerSecond }) { this.capacity = capacity; this.refillPerSecond = refillPerSecond;
How token-bucket rate limiting works in Express
rate-limiting
token-bucket
middleware
Intermediate
7 steps
go
package middleware import ( "net/http"
Per-IP rate limiting middleware in Gin
rate-limiting
token-bucket
concurrency
Intermediate
7 steps
php
<?php namespace App\Services;
Phone verification codes in Laravel
rate-limiting
caching
hashing
Intermediate
7 steps
java
public final class TokenBucketRateLimiter { private final long capacity; private final double refillTokensPerNano;
How a token bucket rate limiter works
rate-limiting
concurrency
token-bucket
Intermediate
8 steps
go
package ratelimit import ( "context"
A token bucket rate limiter in Go
rate-limiting
concurrency
goroutines
Intermediate
7 steps
ruby
require 'monitor' class TokenBucket include MonitorMixin
A thread-safe token bucket rate limiter in Ruby
rate-limiting
concurrency
thread-safety
Intermediate
8 steps
php
final class TokenBucketLimiter { private float $tokens; private float $lastRefill;
How a token bucket rate limiter works
rate-limiting
token-bucket
throttling
Intermediate
7 steps
php
<?php namespace App\Http\Controllers\Auth;
Rate-limited login in Laravel
authentication
rate-limiting
validation
Intermediate
9 steps
typescript
import { CanActivate, ExecutionContext, Injectable,
A rate-limiting guard in NestJS
rate-limiting
guards
metadata
Intermediate
7 steps