High-level design
The concept of a rate limiter is relatively simple: a system between the clients and a service that ensures that clients do not use the service beyond the established limits. Limits could include the number of operations in a given period of time, the amount of data transferred over a period of time, etc.
The actual implementation will depend on how big the service is, as we’ll see in the detailed design later on.