A rate limiter is a system is to prevent a user from making too many requests to a service within a certain time frame. This is used to protect services from abuse and can be implemented in various scopes like per user, per IP address, etc.
Functional requirement:
Scale requirement: