Skip to content
All features
platformpackages/platform/rate-limit

rate-limit package

Token-bucket rate limiter — Upstash Redis or in-memory. Per-route + per-tenant policy, 429 with retry-after, decision logged for audit.

Open docs
Stability
Stable
Scope
Global
Boundary
packages/platform/rate-limit
rate-limitpackages/platform/rate-limit
Foundational layer
Runtime stack5 layers
  • edge
  • gateway
  • services
  • platformyou are here
  • storage
Uptime
99.83%
Resolved configrate-limit.config

Uptime

99.83%

+0.08%

p99 latency

49 ms

-6%

Active connections

399

Active tenants

79

+2%
packages/platform/rate-limitplatform · Lowest shared layer · zero-app coupling
Usagerate-limit.ts
typescript
rate-limit.ts
1import { rateLimit } from "@nebutra/rate-limit";
2
3const limiter = rateLimit({
4  algorithm: "token-bucket",
5  rps: 100,
6  burst: 250,
7  key: (ctx) => `${ctx.tenant.id}:${ctx.actor.id}`,
8});
9
10const { ok, retryAfter } = await limiter.consume(ctx);
11if (!ok) return Response.json({ retryAfter }, { status: 429 });