Loads and validates host application configuration for Squidie.
This contract is intentionally small so application teams only configure the runtime boundary once, while workflow authors stay focused on declarative workflow definitions and public API usage.
Summary
Functions
Loads Squidie configuration from the host application environment.
Loads configuration or raises an ArgumentError with the validation details.
Types
@type read_model() :: :read_model
@type runtime() :: :journal
@type t() :: %Squidie.Config{ journal_storage: Squidie.Runtime.Journal.Storage.t() | nil, queue: String.t(), read_model: read_model(), repo: module(), runtime: runtime() }
Functions
@spec load(keyword()) :: {:ok, t()} | {:error, config_error()}
Loads Squidie configuration from the host application environment.
Optional overrides are merged after application configuration so tests and embedding applications can supply runtime-specific repositories without mutating global application state.
Loads configuration or raises an ArgumentError with the validation details.