Skip to main content

Exponential backoff with jitter.

Project description

An exponential backoff implementation as described in an AWS architecture post. Uses full jitter.


from expbackoff import Backoff

backoff = Backoff(base_seconds=0.5, max_seconds=120)

while True:
    backoff.sleep() # Depending on previous failures, potentially delay before performing an action
    success = do_a_thing() # Perform an action, record whether it succeeded
    backoff.update(success) # Update the failure count


  • backoff = expbackoff.Backoff(...)
  • Create a Backoff object. Arguments:
    • base_seconds (required): Part of the backoff calculation, i.e base_seconds * 2 ^ (failures - 1)
    • max_seconds (required): Max seconds to delay, regardless of failure count.
    • failures (optional): Number of current failures. Useful if another service is handling your retries. Defaults to 0.
    • random (optional): A random object. Defaults to random.random.
  • backoff.sleep(): If failures have occurred, sleep for backoff.get_seconds_with_jitter()
  • backoff.update(success): Update the failure count by passing a boolean representing success.
  • backoff.get_seconds_with_jitter(): The current backoff time in seconds, with jitter applied. Zero if there are no recorded failures. Read-only.
  • backoff.get_raw_seconds(): The current backoff time in seconds, without jitter applied. Zero if there are no recorded failures. Read-only.
  • backoff.failures: The current number of failures. Read-only.


Popular options are retrying and backoff. These both use a decorator API so aren’t suitable for all uses - hence expbackoff.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for expbackoff, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size expbackoff-0.1.1.tar.gz (2.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page