All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 - 2024-05-10
- [Breaking] Replace
chrono
with standard library types- Replace
chrono::DateTime<Utc>
withstd::time::SystemTime
- Replace
- Remove unused
anyhow
dependency - Remove
fake
dependency
- [Breaking] Implement
RetryPolicy
forExponentialBackoffTimed
, which requires a modification to theshould_retry
method ofRetryPolicy
in order to pass the time at which the task (original request) was started.
- Total duration algorithm can now be configured to also consider max retries, calculated applying no jitter (1.0)
- We enforce whatever comes first, total duration or max retries
- Exponential base is now configurable
- [Breaking] Change backoff and jitter algorithms
- Change the backoff algorithm to a more conventional exponential backoff.
- Replace the decorrelated jitter algorithm with an option of either none, full, or bounded. Defaults to full jitter.
- [Breaking] Remove
ExponentialBackoffBuilder::backoff_exponent()
- The number of attempts is now used as the exponent.
- [Breaking] Require a task start time when using a total retry duration
ExponentialBackoffBuilder::build_with_total_retry_duration()
now returnsExponentialBackoffTimed
which does not implementRetryPolicy
.
- [Breaking] Mark
ExponentialBackoff
asnon_exhaustive
- Can no longer be constructed directly.
Debug
derived forRetryDecision
- remove time v0.1 dependency
ExponentialBackoff
policy.