Reactive, Predictive, Adaptive Rate Limiting