Syntropy.Persistence
(syntropy v0.1.0)
Copy Markdown
Optional Postgres-backed durability for Syntropy replay-critical read models.
Summary
Types
@type event() :: Syntropy.EventRecorder.event()
@type recommendation() :: Syntropy.RecommendationStore.recommendation()
@type run_envelope() :: map()
@type snapshot() :: Syntropy.HistoryStore.snapshot()
@type task_result() :: Syntropy.TaskScheduler.task_result()
@type write_result() :: :ok | {:error, term()}
Functions
@spec clear_all!() :: :ok
@spec counter_from_ids([map()], atom(), String.t()) :: non_neg_integer()
@spec enabled?() :: boolean()
@spec hydrate_limit() :: pos_integer()
@spec load_recent_events(non_neg_integer()) :: [event()]
@spec load_recent_recommendations(non_neg_integer()) :: [recommendation()]
@spec load_recent_run_envelopes(non_neg_integer()) :: [run_envelope()]
@spec load_recent_snapshots(non_neg_integer()) :: [snapshot()]
@spec load_recent_tasks(non_neg_integer()) :: [task_result()]
@spec observe_write(write_result(), String.t()) :: write_result()
@spec persist_recommendation(recommendation()) :: :ok | {:error, term()}
@spec persist_run_envelope(run_envelope()) :: :ok | {:error, term()}
@spec persist_task_run(task_result()) :: :ok | {:error, term()}
@spec require_write!(write_result(), String.t()) :: :ok
@spec tolerate_write(write_result(), String.t()) :: :ok