Hourglass.Activity.RetryClassifier behaviour (hourglass v0.1.0)

Copy Markdown View Source

Behaviour for classifying an activity failure into a Temporal retry verdict.

ActivityRunner resolves the implementation from config :hourglass, :retry_classifier (default Hourglass.Activity.RetryClassifier.Default). Context (originating activity name, caller site) is passed explicitly rather than via the process dictionary.

Summary

Functions

Classify via the configured implementation.

The configured classifier module.

Types

classification()

@type classification() :: :retryable | :non_retryable | :unclassified

context()

@type context() :: %{
  optional(:activity_name) => String.t(),
  optional(:caller) => :rescue | :tuple_error
}

metadata()

@type metadata() :: %{type: String.t(), message: String.t(), details: map() | nil}

Callbacks

classify(error, context)

@callback classify(error :: term(), context :: context()) ::
  {classification(), metadata()}

Functions

classify(error, context \\ %{})

@spec classify(term(), context()) :: {classification(), metadata()}

Classify via the configured implementation.

impl()

@spec impl() :: module()

The configured classifier module.