- What is it?
- What's the use?
- In which situations can you use it?
- Is there just one strategy or several? ( Example: Fibonacci backoff)
It is a strategy where every attempt or iteration of a procedure is followed by an increasing interval (optionally up to a fixed limit) in case of failure or need of flow adjustment. Feedback is a feature (whether it comes from the previous iteration itself, or from measurements made during the procedure)
Should be used in any situation where repeated uncontrolled actions generate resource consumption or inefficiency.
Classic is the Ethernet protocol itself, used in virtually any modern data network.
Another scenario is for example a UDP connection, where you will limit the packets until they are compatible with your output band and reception on the other side (it is still a "failure" scenario, but it is a natural part of the protocol of adjustment).
Another example scenario (less common use of the term, but same principle) is the consumption of an API from a server, in case of failure or busy system. If two consecutive requisitions did not reach the goal, try a larger interval between the next ones.
It has more common strategies like simply multiplying the previous range by a factor (after all it's exponential) but nothing prevents you from creating your own.
For example, when it comes to Ethernet, these two algorithms are common:
Binary exponential backoff
Truncated binary exponential backoff
(This second is almost the same as before, but with that maximum limit I commented in interval)
Related reading: