Jidoka.Effect.Journal (Jidoka v0.8.0-beta.1)

Copy Markdown View Source

Intent/result journal used to make effects replayable.

Summary

Types

t()

@type t() :: %Jidoka.Effect.Journal{
  intents: %{optional(binary()) => term()},
  results: %{optional(binary()) => term()}
}

Functions

incomplete_intent?(journal, intent)

@spec incomplete_intent?(t(), Jidoka.Effect.Intent.t()) :: boolean()

intent_for(journal, id)

@spec intent_for(t(), Jidoka.Effect.Intent.t() | String.t()) ::
  Jidoka.Effect.Intent.t() | nil

intent_recorded?(journal, intent_or_id)

@spec intent_recorded?(t(), Jidoka.Effect.Intent.t() | String.t()) :: boolean()

new(attrs \\ [])

@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}

new!(attrs \\ [])

@spec new!(keyword() | map()) :: t()

put_intent(journal, intent)

put_result(journal, result)

result_for(journal, intent)

schema()

@spec schema() :: Zoi.schema()