الحد الافتراضي
100 طلب/دقيقة لكل IP. كافٍ للاستخدام البشري الطبيعي + معظم التكاملات. الحدود محسوبة على نافذة منزلقة (sliding window).
ترويسات الاستجابة
كل استجابة تحوي:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 73
X-RateLimit-Reset: 1716800000X-RateLimit-Limit— الحد الأقصى في النافذة.X-RateLimit-Remaining— كم متبقّي قبل 429.X-RateLimit-Reset— Unix timestamp لمتى يُعاد التعداد.
الاستجابة عند التجاوز
HTTP/1.1 429 Too Many Requests
Retry-After: 47
{
"statusCode": 429,
"message": "ThrottlerException: Too Many Requests"
}الترويسة Retry-After تخبرك بعدد الثواني قبل المحاولة مجدّداً.
حدود أشد لبعض المسارات
المسارات الحسّاسة (مثل /api/auth/login) عليها throttle أشد لمنع brute-force. هذه الحدود مطبّقة على مستوى الـ controller عبر @Throttle().
تجاوز الحد بأمان
لو احتجت أعلى throughput (مثل migration دفعي)، استخدم exponential backoff: ابدأ بـ 1s، ثم 2s، ثم 4s… ولا تتجاوز 32s. هذا يحترم الـ Retry-After ولا يغمر السيرفر.