Caravela.Flow.Steps.Run (Caravela v0.6.0)

Copy Markdown View Source

Run fun.(state) once. The return value drives what happens next:

  • :ok — advance, state unchanged
  • {:ok, new_state} — advance with new state
  • {:retry, new_state} — retry (if retries > 0) with new state
  • {:error, reason} — retry (if retries > 0) else fail flow

Summary

Types

backoff()

@type backoff() :: :linear | :exponential

t()

@type t() :: %Caravela.Flow.Steps.Run{
  backoff: backoff(),
  base_delay: non_neg_integer(),
  fun: (map() -> any()),
  retries: non_neg_integer()
}