Kong's rate limiting plugin defaults to a local counter policy, which keeps counts in each node's own memory. On a single node that is correct. On a horizontally scaled gateway it means every node enforces the full limit independently, so the effective ceiling is the configured limit multiplied by the number of nodes.
Customers on a metered plan were consistently exceeding their documented request quota, and a partner integration overwhelmed a downstream service that the rate limit was supposed to protect. The limit looked correct in the plugin configuration. The gateway had been scaled from two to eight replicas some months earlier, and nobody revisited the counter policy.
Kong on Kubernetes with a horizontally scaled data plane, rate limiting applied per consumer, Redis available in the cluster.
AceMQ reproduced the overshoot with a controlled load test that pinned requests across replicas, confirming the effective limit scaled with replica count. We moved the counter store to a shared Redis backend and then load-tested the Redis path itself, since a shared counter adds a network hop into the request path and needs its own timeout and failure behavior defined.
Enforced limits now match configured limits regardless of replica count, and the downstream service that the limit exists to protect stopped being overwhelmed by single-partner traffic.
Tracing intermittent 502s at the Kong gateway to misconfigured active health checks and stale DNS resolution of upstream service names.
Measuring where request latency is actually spent inside the Kong plugin chain, and which plugins are worth their cost.
Whether you need architecture advisory, 24/7 support, or full managed services, AceMQ has the expertise to help.