With no limit, every one of them goes through to your service.
Your service is swamped and slows down for everyone.
A normal user sends one request.
It times out. One client broke it for everybody.
Each client gets its own allowance, so one cannot starve the rest.
Extra requests are refused quickly with a polite "slow down".
With many servers, the counts must live in one shared place.
Reach for it when
On any public API, so one buggy client looping at 1,000 requests a second cannot slow everyone. Internal-only tools may skip it.
The catch
With two entry servers each counting alone, a client with a limit of 10 quietly gets 20, so counts must be shared.
Say it in an interview“I would limit per client in the gateway, with counts in a shared fast store like Redis, and return 429 with a Retry-After header.”