@convex-dev/rate-limiter
Version:
A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.
13 lines (11 loc) • 425 B
text/typescript
import { defineSchema, defineTable } from "convex/server";
import { v } from "convex/values";
export default defineSchema({
rateLimits: defineTable({
name: v.string(),
key: v.optional(v.string()), // undefined is singleton
shard: v.number(), // 0 is singleton
value: v.number(), // can go negative if capacity is reserved ahead of time
ts: v.number(),
}).index("name", ["name", "key", "shard"]),
});