Spring GDS 25. Jubiläum
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Rate Limiting steuert, wie viele Anfragen ein Client in einem bestimmten Zeitfenster an einen Dienst stellen darf. Ist das Limit erreicht, antwortet der Server mit dem Status 429, meist mit einem Header, der angibt, wann ein erneuter Versuch möglich ist. Es ist der Mechanismus, der verhindert, dass ein einzelner Client, ob bösartig oder einfach schlecht programmiert, ein System überlastet, auf das alle anderen angewiesen sind.
Die Gründe reichen von Sicherheit über Fairness bis zu Kosten. Es bremst Brute-Force-Versuche beim Login und Denial-of-Service-Verkehr. Es verhindert, dass eine einzelne Integration die gemeinsame Kapazität für sich beansprucht. Es hält nutzungsabhängige Rechnungen kalkulierbar. Eine öffentliche API, die pro Schlüssel tausend Aufrufe pro Stunde erlaubt, nutzt Rate Limiting, um sowohl ihre Infrastruktur als auch ihre übrigen Kunden zu schützen. Zu den gängigen Ansätzen gehören der Token Bucket, der kurze Spitzen über der konstanten Rate zulässt, und das Sliding Window, das die Zählung über die Zeit glättet. Limits werden in der Regel nach API-Schlüssel, Nutzer oder IP-Adresse vergeben.
Gutes Rate Limiting ist auch ein Vertrag. Die Antwort teilt dem Client sein Limit mit, wie viel davon übrig ist und wann das Fenster zurückgesetzt wird. So kann ein sauber gebauter Konsument zurückstecken und es erneut versuchen, statt gegen eine Wand zu laufen. Die Kunst liegt darin, die Limits hoch genug zu setzen, dass legitime Nutzung sie nie bemerkt, und niedrig genug, dass Missbrauch gestoppt wird, bevor er jemandem Kosten verursacht.
Wir bauen Rate Limiting von Anfang an in APIs ein, nicht erst, wenn ein Vorfall dazu zwingt. In einem Projekt, das Daten für externe Partner bereitstellte, haben wir gestaffelte Limits pro Schlüssel gesetzt, klare Header zurückgegeben, damit Partner sich sauber drosseln konnten, und die Regeln an einer Stelle gehalten, um sie bei sichtbar werdenden Nutzungsmustern leicht anzupassen. Kein Partner wurde überrascht, und kein einzelner Client konnte die Plattform lahmlegen.
Bei unserer Arbeit an individuellen Webanwendungen ist Rate Limiting eine Schicht in einer breiteren Verteidigung, neben Authentifizierung, Validierung und Monitoring. Wir justieren die Schwellenwerte am echten Verkehr, statt zu raten, und machen das Verhalten im Fehlerfall vorhersehbar, damit alle, die sich mit der API verbinden, genau wissen, was sie erwartet. Schutz, der seine Aufgabe erfüllt, ohne denen im Weg zu stehen, die das System korrekt nutzen.
Sie öffnen eine API für die Welt und möchten, dass sie stabil bleibt? Setzen wir die Limits richtig.
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Eine Marke in ein funktionierendes Geschäft verwandeln.
Eine halbe Million Menschen. Eine App. Null Chaos.















