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.
- 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
typescriptrate-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 });