Le rate limiting consiste à limiter le nombre de requêtes qu'un client peut envoyer à une API dans une fenêtre de temps donnée. C'est un mécanisme essentiel pour prévenir les abus, protéger les ressources serveur et garantir une qualité de service équitable pour tous les utilisateurs.
Algorithmes
Plusieurs algorithmes existent, chacun avec ses compromis. Le token bucket autorise des pics ponctuels, la sliding window offre un lissage précis du trafic, et la fixed window est simple à implémenter mais vulnérable aux pics en bordure de fenêtre. Le choix dépend du profil de trafic attendu.
Implémentation
Quand la limite est atteinte, le serveur répond HTTP 429 (Too Many Requests) avec un header Retry-After. Les headers X-RateLimit-* informent le client de son quota restant. Les clés API permettent d'appliquer des quotas différenciés selon le niveau d'abonnement.
Le rate limiting, c'est le videur qui maintient votre API en bonne santé même quand la pression monte.