Skip to main content

Backoff policies

The @daiso-tech/core/backoff-policies component

Predefined backoff policies

The library includes predefined backoff policies:

  • constantBackoff - Constant backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { constantBackoff } from "@daiso-tech/core/backoff-policies"

// The settings argument is optional and all its fields are optional
const backoff = constantBackoff({
delay: TimeSpan.fromSeconds(1),
jitter: 0.5 // You can pass null to disable jitter
})
  • exponentialBackoff - Exponential backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { exponentialBackoff } from "@daiso-tech/core/backoff-policies"

// The settings argument is optional and all its fields are optional
const backoff = exponentialBackoff({
maxDelay: TimeSpan.fromSeconds(60),
minDelay: TimeSpan.fromSeconds(1),
multiplier: 2,
jitter: 0.5 // You can pass null to disable jitter
})
  • linearBackoff - Linear backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { linearBackoff } from "@daiso-tech/core/backoff-policies"

// The settings argument is optional and all its fields are optional
const backoff = linearBackoff({
maxDelay: TimeSpan.fromSeconds(6),
minDelay: TimeSpan.fromSeconds(1),
jitter: 0.5 // You can pass null to disable jitter
})
  • polynomialBackoff - Polynomial backoff policy with jitter
import { TimeSpan } from "@daiso-tech/core/time-span"
import { linearBackoff } from "@daiso-tech/core/backoff-policies"

// The settings argument is optional and all its fields are optional
const backoff = linearBackoff({
maxDelay: TimeSpan.fromSeconds(60),
minDelay: TimeSpan.fromSeconds(1),
degree: 2,
jitter: 0.5 // You can pass null to disable jitter
})

Further information

For further information refer to @daiso-tech/core/backoff-policies API docs.