Build fixed-window, sliding-window, token-bucket, and leaky-bucket limiters. Use atomic operations or scripts to enforce limits correctly across many application instances.