Syntropy.PersistenceHealth (syntropy v0.1.0)

Copy Markdown

Tracks Syntropy persistence health and rate-limits repeated failure logs.

Summary

Types

info()

@type info() :: %{
  status: status(),
  last_failed_operation: String.t() | nil,
  last_failure_at: DateTime.t() | nil
}

state()

@type state() :: %{
  failing_operations: %{optional(String.t()) => DateTime.t()},
  log_cooldowns: %{optional(String.t()) => integer()}
}

status()

@type status() :: String.t()

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

info()

@spec info() :: info()

record_failure(operation, reason)

@spec record_failure(String.t(), term()) :: :ok

record_success(operation)

@spec record_success(String.t()) :: :ok

reset()

@spec reset() :: :ok

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()

status()

@spec status() :: status()