CodeWithYash
DSA
Spring Boot
System Design
Series
Articles
Leaderboard
Sign In

Subscribe to Newsletter

Get the latest articles, DSA sheets, and system design challenges delivered to your inbox.

<CODEWITHYASH/>

The ultimate sanctuary for software engineers seeking deep mastery of core technical principles.

Library

  • Articles
  • DSA Sheets
  • Roadmaps

Connect

  • GitHub
  • LinkedIn
  • About
  • Contact

Legal

  • Privacy
  • Terms
  • Support

© 2026 CodeWithYash Global Systems.

Status: OperationalVersion: 4.2.0
System Design
OverviewTheory lessonsHLDLLD
All SeriesSeries
Distributed Systems

System Design Series

0%

0 of 33 topics completed

Progress
Scalable URL Shortener (TinyURL & Bitly)Theory
30 min
Planetary Distributed Rate Limiter (Cloudflare & Stripe)Theory
35 min
Pastebin & Ephemeral Blob StorageTheory
40 min
Social Timeline & Newsfeed (Twitter/X & Meta Feed)Theory
35 min
Global Real-Time Chat & Messaging (Discord & WhatsApp)Theory
35 min
High-Throughput Video Streaming & Ingestion (Netflix & YouTube)Theory
35 min
Ride-Sharing Proximity Dispatch (Uber & Lyft)Theory
35 min
Distributed Key-Value Store (Amazon Dynamo & Cassandra)Theory
45 min
Flash Sale & High-Concurrency Inventory ReservationTheory
35 min
Distributed Search Autocomplete & Typeahead EngineTheory
40 min
System DesignHigh-Level Design (HLD) Real-World Case StudiesPlanetary Distributed Rate Limiter (Cloudflare & Stripe)

Complex Systems · Phase 4: High-Level Design (HLD)

Planetary Distributed Rate Limiter (Cloudflare & Stripe)

Architect a planetary rate limiting engine processing 1M+ req/s with multi-tier enforcement, Redis Lua sliding window counters, local memory fallbacks, and multi-region synchronization.

Primary specification: How We Built Rate Limiting Capable of Scaling to Millions of Domains (Cloudflare)

Written & reviewed by Yash Patel 35 minBaseline 2026.1 Curated Blueprint· Verified 2026-09-14

Lesson 25 of 33

1d streak

The Architectural Question

Centralized rate limiting clusters introduce 15ms of cross-region network latency to every single API request, violating latency SLAs.

Core Engineering Objectives

  • Sliding Window Counter algorithm with millisecond precision in Redis Lua
  • Multi-tier defense: Edge Anycast BGP filter + API Gateway + Service-level quotas
  • Graceful degradation: local memory token bucket fallback when Redis cluster experiences partition

Step 1: Problem Statement & Operational Context

One rate-limit decision
  1. 1. Request

    Carries identity, route, and tenant context.

  2. 2. Gateway

    Builds the policy key and checks local safeguards.

  3. 3. Limiter

    Runs one atomic token or window update.

  4. 4. Policy store

    Returns allow or reject plus remaining quota.

  5. 5. Service

    Receives only allowed traffic.

Fail-open, fail-closed, and local fallback are explicit per-policy choices, not universal defaults.

A distributed API rate limiter protects downstream microservice fleets from traffic spikes, denial-of-service (DoS) attacks, brute-force credential stuffing, abusive web scrapers, and cascading system outages caused by misconfigured client retries. Operating across distributed edge gateways and application tiers, the limiter must evaluate incoming requests against complex per-tenant quotas with sub-2 millisecond latency overhead.

The Centralization vs. Latency Paradox

Enforcing rate limits across a fleet of 50 microservice instances requires a shared source of state (e.g. Redis). However, if every API gateway in every region makes a synchronous blocking network round-trip to a centralized Redis cluster in US-East on every single API request, global API latency spikes by 80ms-200ms, defeating the core SLA of low-latency cloud microservices.

Token Bucket

An algorithm where tokens are added to a bucket at a constant refill rate up to a maximum burst capacity. Each request consumes one or more tokens; if the bucket is empty, the request is rejected.

Sliding Window Counter

A hybrid memory-efficient algorithm that estimates current request volume by weighting the previous window counter by the remaining percentage of the current sliding window, preventing boundary burst exploitation.

Fail-Open vs. Fail-Closed

A reliability decision specifying whether traffic is admitted (Fail-Open) or rejected (Fail-Closed) when the rate limiting infrastructure itself becomes unreachable or degraded.

Step 2: Requirements (Functional & Non-Functional)

The rate limiter must operate with extreme precision, protecting diverse internal microservice APIs while maintaining transparent communication contracts with clients.

CategoryRequirement SpecificationArchitectural Decision
Functional: Identity TrackingRate limit by IP, API Key, User ID, or tenant organizationHierarchical key composition: rl:{tenant_id}:{api_key}:{route}
Functional: Multi-Window RulesSupport compound rules: 100 req/sec (burst) AND 10,000 req/hour (quota)Dual-bucket pipeline evaluation in a single atomic Lua invocation
Functional: Client ContractReturn HTTP 429 Too Many Requests with standard RFC headersInclude RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Retry-After
Functional: Dynamic TiersSupport dynamic tier updates (Free, Pro, Enterprise) without restartsControl plane with Redis Pub/Sub / etcd configuration change broadcast
Non-Functional: ThroughputSustain 50,000 requests/sec with peak scaling to 100,000 req/secRedis Cluster sharded by tenant key + local in-memory batch reservations
Non-Functional: LatencyRate evaluation overhead must not exceed 2.0ms at p99Local L1 cache (Caffeine) + pipeline Lua scripts over low-latency VPC connections
Non-Functional: High AvailabilityRate limiter outage must not take down the entire business platformConfigurable Fail-Open policy for non-critical endpoints
Non-Functional: Race FreedomZero over-admission under concurrent bursts hitting multiple gatewaysAtomic script execution via Redis Lua engine

Use it when

Adopt Fail-Open for public browsing, search, and catalog services so that a caching or rate-limiter failure never prevents customers from viewing products.

Reconsider when

Adopt Fail-Closed for authentication (login/signup), payment authorization, and SMS OTP endpoints where unbounded throughput permits catastrophic credential stuffing or financial fraud.

Step 3: Detailed Back-of-the-Envelope Capacity Estimations

Quantitative analysis evaluates memory footprints and compute saturation across 50,000 requests/sec sustained load.

ParameterCalculation / FormulaResult
Sustained Request RateBaseline given50,000 requests/sec
Peak Request Rate (2x)50,000 * 2100,000 requests/sec
Daily Active Entities5,000,000 active API keys & IP addresses5M unique limiters
Sliding Window Log Footprint5M users * 100 timestamps * 8 bytes + ZSET overhead (~32B)~20 GB RAM (CPU bound on ZREMRANGE)
Sliding Window Counter Footprint5M users * 2 counter integers (16B) + Redis key overhead (~48B)~320 MB RAM (60x memory reduction)
Token Bucket Footprint5M users * 2 floats (tokens, last_updated) + hash (~64B)~320 MB RAM
Single Redis Node Ops CapacityStandard Redis 7 on single thread~80,000 - 100,000 simple GET/SET ops/s
Single Redis Lua Script CapacityLua script execution with JSON/arithmetic parsing~30,000 - 45,000 script executions/s
Required Redis Cluster Nodes100k peak requests/s / 30k script ops per node = 3.336 nodes (3 primaries + 3 read replicas)

Architectural Boundary · Do Not Confuse

Concept A

Sliding Window Log (Exact Timestamp ZSET)

Concept B

Sliding Window Counter (Approximation)

Sliding Window Log records each accepted request timestamp and can implement an exact rolling-window count, but memory scales with traffic in the window. Sliding Window Counter estimates the rolling count from the current and previous fixed windows using constant-size state. Its boundary error depends on how requests are distributed inside those windows; it does not have a universal error percentage.

Step 4: High-Level Architecture & Component Responsibilities

A production rate limiting topology employs a multi-tiered defense in depth to absorb traffic without single points of failure.

  1. 01Tier 1: Edge Scrubbing (Cloudflare / AWS CloudFront): BGP Anycast filters absorb L3/L4 volumetric DDoS attacks. Coarse IP rate limits (e.g. max 2,000 req/min per IP) drop aggressive scrapers before reaching the datacenter.
  2. 02Tier 2: API Gateway Fleet (Envoy / Kong): Intercepts authenticated traffic, extracts tenant ID and API key, and evaluates in-memory L1 Caffeine cache (Token Leasing).
  3. 03Tier 3: Distributed State Store (Redis Cluster): Sharded Redis cluster executes atomic Lua scripts to evaluate sliding window counters and token refills across all gateway nodes.
  4. 04Tier 4: Control Plane & Config Engine: Watches quota updates in the Postgres billing database, pushing updated rate-limit configurations to gateways and Redis via Redis Pub/Sub.
  5. 05Tier 5: Audit & Telemetry Pipeline: When a request is rejected with HTTP 429, the gateway produces an asynchronous metric event to Kafka/Prometheus to feed security SIEM dashboards.

The Two-Tier Local Token Leasing Optimization

To eliminate a Redis network hop on every single request, API Gateway instances can lease tokens in batches (e.g., reserve 50 tokens from Redis in one atomic command). The gateway satisfies the next 50 requests locally from its in-memory Caffeine cache in 0.05ms. Only when the local bucket falls below 10 tokens does it asynchronously request another batch from Redis.

Step 5: Detailed Data Models & Storage Schema

State storage requires precise key design to guarantee that multi-key operations map to identical hash slots in a distributed Redis cluster.

snippet.sqlsql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- Relational Policy Configuration Schema (PostgreSQL Control Plane)
CREATE TABLE rate_limit_policies (
    policy_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    tier_name VARCHAR(50) NOT NULL UNIQUE,       -- 'free', 'developer', 'enterprise'
    route_pattern VARCHAR(255) NOT NULL,         -- '/api/v1/checkout' or '*'
    window_seconds INT NOT NULL DEFAULT 60,      -- Rolling window size
    max_requests INT NOT NULL DEFAULT 1000,      -- Allowed threshold per window
    burst_capacity INT NOT NULL DEFAULT 1500,    -- Peak burst ceiling
    fail_mode VARCHAR(10) NOT NULL DEFAULT 'OPEN', -- 'OPEN' or 'CLOSED'
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE client_api_keys (
    api_key VARCHAR(64) PRIMARY KEY,
    tenant_id UUID NOT NULL,
    policy_id UUID NOT NULL REFERENCES rate_limit_policies(policy_id),
    is_active BOOLEAN NOT NULL DEFAULT TRUE
);

Redis Hash Tag Syntax {tenant_id}

In Redis Cluster, keys containing curly braces (e.g., `{tenant_123}:prev` and `{tenant_123}:curr`) are hashed exclusively on the substring inside the braces. This guarantees both keys reside on the exact same physical Redis node, allowing multi-key Lua scripts without CROSSSLOT errors.

TTL Expiration Safety

Every rate limiter key must be configured with an explicit TTL (e.g., 2x window duration). Without TTLs, inactive client IP keys accumulate indefinitely, causing silent RAM exhaustion and out-of-memory (OOM) evictions.

Step 6: Core Algorithms & Step-by-Step Request Flows

Below is the battle-tested Redis Lua implementation of the Sliding Window Counter algorithm with O(1) time and memory complexity.

snippet.lualua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
-- Production Redis Lua Script: Sliding Window Counter
-- KEYS[1]: Current window key, e.g., {rl:user_123}:28400101
-- KEYS[2]: Previous window key, e.g., {rl:user_123}:28400100
-- ARGV[1]: Max requests allowed in window
-- ARGV[2]: Window size in seconds (e.g., 60)
-- ARGV[3]: Current epoch timestamp with millisecond precision
-- ARGV[4]: Cost of current request (typically 1)

local curr_key = KEYS[1]
local prev_key = KEYS[2]
local max_limit = tonumber(ARGV[1])
local window_size = tonumber(ARGV[2])
local now = tonumber(ARGV[3])
local cost = tonumber(ARGV[4])

-- Calculate offset within the current window (0.0 to 1.0)
local current_window_bucket = math.floor(now / window_size)
local offset = (now % window_size) / window_size
local weight = 1.0 - offset

-- Retrieve current and previous counts
local curr_count = tonumber(redis.call('get', curr_key) or '0')
local prev_count = tonumber(redis.call('get', prev_key) or '0')

-- Estimate total requests in rolling window
local estimated_count = math.floor(prev_count * weight + curr_count)

if estimated_count + cost > max_limit then
    -- Exceeded limit: return rejection + headers metadata
    local reset_time = (current_window_bucket + 1) * window_size
    local retry_after = math.max(1, math.ceil(reset_time - now))
    return {0, max_limit - estimated_count, retry_after, reset_time}
else
    -- Allowed: increment current window counter atomically
    local new_count = redis.call('incrby', curr_key, cost)
    if new_count == cost then
        -- Set TTL to 2x window to allow previous window calculation
        redis.call('expire', curr_key, window_size * 2)
    end
    local remaining = math.max(0, max_limit - (estimated_count + cost))
    local reset_time = (current_window_bucket + 1) * window_size
    return {1, remaining, 0, reset_time}
end
  1. 01Step 1: Request Ingress: Client sends GET /api/v1/orders with Authorization: Bearer key_sec_99.
  2. 02Step 2: Key Extraction: Gateway extracts API key, hashes it, and queries local in-memory policy cache to determine user tier (100 req/min).
  3. 03Step 3: Atomic Evaluation: Gateway executes the Sliding Window Lua script against the regional Redis Cluster. Network RTT is ~0.8ms.
  4. 04Step 4a (Traffic Admitted): If script returns 1, gateway sets response headers: X-RateLimit-Limit: 100, X-RateLimit-Remaining: 41, X-RateLimit-Reset: 1718000060, and forwards request upstream.
  5. 05Step 4b (Rate Limit Exceeded): If script returns 0, gateway terminates the request immediately with HTTP 429 Too Many Requests. Response payload includes {"error": "rate_limit_exceeded", "retry_after": 14} and header Retry-After: 14. Zero compute touches backend microservices.

Step 7: Deep Dives into Critical Bottlenecks

Redis Cluster Cross-Slot Evaluation Crash

In Redis Cluster, data is partitioned across 16,384 hash slots. When a Lua script references two keys (KEYS[1] and KEYS[2]), Redis verifies that both keys hash to the identical slot on the same master. If an engineer forgets to wrap the shared user identifier in curly braces {user_123}, Redis throws a fatal CROSSSLOT Keys in request don't hash to the same slot error, causing 100% of rate limiting checks to crash.

Local Batch Leasing Oversubscription vs. Starvation

When 20 API gateway nodes each lease 50 tokens from Redis for a client with a 1,000 req/min quota, all 1,000 tokens are checked out immediately. If 19 of those gateways receive zero traffic while Gateway 1 receives 100 requests, Gateway 1 will prematurely reject legitimate user requests with HTTP 429 even though 900 unused tokens are idling in the memory of other nodes! Mitigate this by adjusting lease sizes dynamically based on the observed arrival rate of each gateway node.

Architectural Boundary · Do Not Confuse

Concept A

Fail-Open Policy (Availability Preferred)

Concept B

Fail-Closed Policy (Security Preferred)

When Redis suffers an outage, Fail-Open catches the network exception and permits requests through without rate enforcement, preventing a total platform blackout. Fail-Closed rejects all requests with HTTP 429 or 503, protecting downstream databases from being obliterated by unchecked traffic surges.

Step 8: Real-World Production War Stories

Failure Exercise: The Fail-Closed Cascade

Consider an API fleet whose centralized rate-limit store becomes unreachable. If every gateway treats that dependency failure as "deny," a safety mechanism can become a full API outage. Decide the failure policy per endpoint: fail closed for high-risk mutations, use a conservative local fallback budget for ordinary traffic, and surface limiter health separately from genuine quota rejections. This is an illustrative failure exercise, not an attributed production incident.

Cloudflare: Scaling Rate Limiting to 50+ Million Domains

Cloudflare described enforcing counters independently at each point of presence (PoP), accepting that traffic arriving at different PoPs does not share one perfectly global counter. Within a PoP, its edge processes route counter operations through Twemproxy to a sharded Memcached cluster, so every process in that location observes the same local count. The design trades globally exact enforcement for low latency and failure isolation; it is not an eBPF counter with UDP gossip.

Step 9: Interviewer Deep-Dive Gauntlet & Active Recall

Deep-Dive Q1: How do you prevent system clock drift across gateway instances from corrupting sliding window calculations?

Model Answer: Gateways can disagree near a window boundary if they supply their own clocks. When one Redis primary owns a limiter key, calling redis.call('TIME') inside the atomic script gives that shard a consistent time source for the decision. It is not a globally authoritative clock: failover, multiple shards, or multiple regions still require a documented tolerance and ownership model. For strict global quotas, route a key to one authority; for low-latency regional quotas, accept bounded approximation.

Deep-Dive Q2: Why does the Fixed Window Counter algorithm permit up to 2x the configured limit, and how does the Sliding Window Counter prevent it?

Model Answer: In a Fixed Window algorithm with a limit of 100 req/min, time is sliced into fixed buckets [00:00, 00:01), [00:01, 00:02). A malicious user can send 100 requests at 00:00:59, and another 100 requests at 00:01:01. Both requests are accepted because they fall into different fixed windows. However, within a rolling 2-second interval, the server absorbed 200 requests (a 2x burst!). The Sliding Window Counter prevents this by weighting the previous window's count by the remaining percentage of the current window: count = current_count + previous_count * ((window_size - offset) / window_size). At 00:01:01, the weight of the previous window is 59/60 (98.3%), yielding an estimated count of 1 + 100 * 0.983 = 99.3. The 101st request is immediately rejected.

Deep-Dive Q3: How do you protect the rate limiter itself from being overwhelmed by a high-volume Layer 7 DDoS attack?

Model Answer: If an attacker floods the API with 500,000 requests/sec, parsing HTTP headers, terminating TLS, and executing Redis Lua scripts will exhaust CPU and network sockets, bringing down the rate limiter itself. Production defense requires a tiered pipeline: 1) eBPF / XDP (eXpress Data Path) kernel filters drop packets at the network interface card (NIC) driver level based on IP reputation before memory allocation. 2) Layer 4 Anycast edge proxies (Cloudflare/AWS Shield) absorb volumetric surges. 3) API Gateways enforce simple IP-based token buckets in local C++ memory without touching Redis, only invoking Redis for authenticated API keys.

Deep-Dive Q4: What is the Token Bucket algorithm's primary advantage over the Leaky Bucket algorithm for microservice APIs?

Model Answer: Leaky Bucket processes requests at a strictly constant output rate (smoothing traffic like a queue). If a sudden legitimate burst of 20 requests arrives, Leaky Bucket forces requests into a queue, artificially adding latency to every request. In contrast, Token Bucket permits bursts up to the maximum bucket capacity instantly with zero added latency, provided sufficient tokens have accumulated. For user-facing microservice APIs, instantaneous burst handling is essential for loading rich web pages that issue 30 parallel asset/data requests on initial load.

Active Recall Checkpoint

Why must Redis rate limiting logic be implemented via a Lua script rather than individual client-side GET and INCR commands?

Hint: Consider what happens when two gateway servers check the counter at the exact same millisecond.

Show answer & explanation

Executing individual commands introduces a classic check-then-act race condition. Multiple gateway servers read the same count concurrently, determine that capacity remains, and both execute INCR, allowing traffic to blow past the quota. A Redis Lua script executes atomically on the single-threaded Redis engine: no other command runs concurrently, guaranteeing race-free evaluation.

Active Recall Checkpoint

What standard HTTP status code and response headers should an API gateway return when a user exceeds their rate limit quota?

Hint: Refer to RFC 6585 and IETF rate limit conventions.

Show answer & explanation

The gateway must return HTTP 429 Too Many Requests. Response headers must include: RateLimit-Limit (quota ceiling), RateLimit-Remaining (0), RateLimit-Reset (epoch time when quota resets), and Retry-After (number of seconds to wait before retrying).

Hardware Bounds & Sizing Math

Topic sizing snapshot

The four numbers that materially affect this architecture. Use them as bounds, not as a generic calculator embedded in every lesson.

Peak QPS

1,000,000 RPS peak

5-Yr Storage

N/A (Transient counters)

Bandwidth

8 Gbps telemetry traffic

Working Set RAM

32 GB Redis cluster per region

Production Postmortem & Verification

Production Incident Postmortem

  1. Trigger / Setup: A global API gateway routes all rate limit checks to a single Redis cluster in US-East.
  2. Production Symptom: European and Asian API requests suffer an extra 150ms-250ms RTT latency overhead purely for rate limit evaluation.
  3. Root Cause & Fix: Deploy local rate limiting Redis clusters in each region; synchronize global quotas asynchronously with token-batch allocations.

Acceptance Criteria & Outcomes

  • Design multi-tier rate limiting architecture with sub-millisecond local evaluation.
  • Demonstrate atomic sliding window enforcement preventing burst boundary exploitation.
  • Formulate client response headers (`RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`).

End-of-Chapter Synthesis & Key Takeaway

Planetary Distributed Rate Limiter (Cloudflare & Stripe) is built around one fundamental rule: Establish clear responsibility and explicit trade-offs.. Before adding components, establish explicit quantitative SLAs for latency, throughput, and consistency. Choose the simplest architecture that meets stated constraints.

Architectural & Technical Interview Review

Core FAANG Interview Questions

3 Questions
Q01
How do you justify introducing Planetary Distributed Rate Limiter (Cloudflare & Stripe) into a high-scale production architecture?
Click to reveal model answer →Hide answer ↑Requirements & Design Brief

Introduce Planetary Distributed Rate Limiter (Cloudflare & Stripe) only when measured scale, data size, or failure boundaries exceed single-node capacity. State the exact bottleneck, evaluate operational overhead, and verify that the trade-offs justify the added moving parts.

Source section: Requirements & Design Brief
Q02
What is the primary trade-off and hidden operational cost of Planetary Distributed Rate Limiter (Cloudflare & Stripe)?
Click to reveal model answer →Hide answer ↑Architecture Trade-offs

It improves scalability and availability, but introduces network hops, serialization overhead, and eventual consistency or coordination complexity.

Source section: Architecture Trade-offs
Q03
How do you handle catastrophic failure or dependency degradation in Planetary Distributed Rate Limiter (Cloudflare & Stripe)?
Click to reveal model answer →Hide answer ↑Failure Review & Recovery

Implement connect/read timeouts, exponential backoff with jitter, and fallback defaults so downstream degradations do not cause cascading outages.

Source section: Failure Review & Recovery

Production Pitfalls & Anti-Patterns

Critical Failure Anti-Patterns

!

Premature Distributed Complexity

Scattering distributed components before identifying concrete write, read, or storage limits creates accidental points of failure and operational debt.

Production Mitigation: Start with the simplest modular design that satisfies requirements, evolving it only as measured constraints dictate.

!

Unbounded Retries and Cascading Storms

When a dependency degrades, immediate synchronized retries multiply downstream traffic, turning a minor slowdown into a total fleet outage.

Production Mitigation: Enforce strict retry budgets, exponential backoff, and full randomized jitter on all client calls.

!

Neglecting Observability and Metrics

Deploying architecture without distributed tracing or p99 tail latency alerts leaves engineers blind when partial partitions occur.

Production Mitigation: Export metrics for request rate, error rate, p95/p99 duration, and saturation at every service boundary.

Primary Documentation & Specifications

How We Built Rate Limiting Capable of Scaling to Millions of Domains (Cloudflare)AWS API Gateway: Throttle API Requests
Previous LessonScalable URL Shortener (TinyURL & Bitly)High-Level Design (HLD)Next LessonPastebin & Ephemeral Blob StorageHigh-Level Design (HLD)

In this chapter

01Architectural Question02Step 1: Problem Statement & Operational Context03Step 2: Requirements (Functional & Non-Functional)04Step 3: Detailed Back-of-the-Envelope Capacity Estimations05Step 4: High-Level Architecture & Component Responsibilities06Step 5: Detailed Data Models & Storage Schema07Step 6: Core Algorithms & Step-by-Step Request Flows08Step 7: Deep Dives into Critical Bottlenecks09Step 8: Real-World Production War Stories10Step 9: Interviewer Deep-Dive Gauntlet & Active Recall11Sizing Snapshot12Production Verification13Synthesis & Review14Primary References

Chapter promise

Sliding Window Counter algorithm with millisecond precision in Redis Lua