Synchronization Model

When configured to store rate limiting data in Redis, the web reverse proxy uses the following model to synchronize data.

  • When a client is observed by an instance for the first time, the web reverse proxy will check to see if any rate limiting data for that client is available in Redis. This data will be retrieved and stored in the local cache for the duration of the synchronization window.
  • On subsequent requests if the synchronization window has not elapsed, the reverse proxy will continue to use the locally cached rate limiting data for that client.
  • If a subsequent request is observed after the synchronization window has elapsed, the web reverse proxy will reconcile its rate limiting data (the number of hits observed by this instance) with the record in Redis. At this point it will also replace the locally cached rate limiting data with the current version from Redis.
Note: In this model, there is a small window of time during which a client can exhaust a single instance and continue to make requests to other instances.