Relyra.RequestStore behaviour (relyra v1.1.0)

Copy Markdown View Source

Public extension contract for request-intent persistence and one-time consumption.

Summary

Callbacks

consume_intent(relay_state, request_id, opts)

@callback consume_intent(
  relay_state :: binary(),
  request_id :: binary(),
  opts :: keyword()
) ::
  :ok | {:error, Relyra.Error.t()}

fetch_intent(relay_state, opts)

@callback fetch_intent(relay_state :: binary(), opts :: keyword()) ::
  {:ok, map()} | {:error, Relyra.Error.t()}

put_intent(relay_state, intent, opts)

@callback put_intent(relay_state :: binary(), intent :: map(), opts :: keyword()) ::
  :ok | {:error, Relyra.Error.t()}

Functions

consume_intent(relay_state, request_id, opts \\ [])

@spec consume_intent(binary(), binary(), keyword()) ::
  :ok | {:error, Relyra.Error.t()}

fetch_intent(relay_state, opts \\ [])

@spec fetch_intent(
  binary(),
  keyword()
) :: {:ok, map()} | {:error, Relyra.Error.t()}

put_intent(relay_state, intent, opts \\ [])

@spec put_intent(binary(), map(), keyword()) :: :ok | {:error, Relyra.Error.t()}