# chimeway v1.0.0 - Table of Contents Explainable, durable notification library for Elixir. ## Pages - [Getting Started](getting-started.md) - [Installation](installation.md) - [Trigger to Delivery](trigger-to-delivery.md) - [Policy and Preferences](policy-and-preferences.md) - [Async Dispatch](async-dispatch.md) - [Multi-Step Journeys](multi-step-journeys.md) - [Integrating Oban for Reliable Async Dispatch](oban-integration.md) - [Custom Adapter Recipe](custom-adapter.md) - [Tracing a Notification](tracing-a-notification.md) - [Chimeway Cheat Sheet](cheatsheet.md) ## Modules - [Chimeway](Chimeway.md): Public entrypoint for notification triggering. - [Chimeway.Adapter](Chimeway.Adapter.md): Behaviour contract for outbound delivery adapters. - [Chimeway.Adapters.Logger](Chimeway.Adapters.Logger.md): Structured-log adapter that emits a tagged Logger.info line and always succeeds. - [Chimeway.Adapters.Test](Chimeway.Adapters.Test.md): In-memory test adapter using process dictionary storage. - [Chimeway.Deliveries](Chimeway.Deliveries.md): Context module for delivery planning, attempt recording, and status transitions. - [Chimeway.Delivery](Chimeway.Delivery.md): Ecto schema for chimeway_deliveries — per-channel delivery record for a notification. - [Chimeway.DeliveryAttempt](Chimeway.DeliveryAttempt.md): Ecto schema for chimeway_delivery_attempts — immutable append-only record of each provider call for a delivery. No updated_at — attempts are never mutated. - [Chimeway.DeliveryPlanning](Chimeway.DeliveryPlanning.md): Shared fanout planner used by all dispatch strategies. - [Chimeway.Digests](Chimeway.Digests.md): Public digest-rule persistence API for durable rule lookup and storage. - [Chimeway.Digests.Accumulation](Chimeway.Digests.Accumulation.md): Transactional digest accumulation for held canonical delivery rows. - [Chimeway.Digests.DigestBucket](Chimeway.Digests.DigestBucket.md): Durable digest bucket storage keyed by rule, recipient, channel, grouping value, and window. - [Chimeway.Digests.DigestMembership](Chimeway.Digests.DigestMembership.md): Auditable membership row linking one canonical delivery into one digest bucket. - [Chimeway.Digests.DigestRule](Chimeway.Digests.DigestRule.md): Durable digest rule storage for stable identity, grouping mode, and window semantics. - [Chimeway.Digests.Emission](Chimeway.Digests.Emission.md): Transactional digest emission for due buckets with durable membership resolution. - [Chimeway.Dispatch](Chimeway.Dispatch.md): Behaviour contract for the dispatcher seam. - [Chimeway.Dispatch.ChannelAdapterConfig](Chimeway.Dispatch.ChannelAdapterConfig.md): Resolves per-channel adapter config without creating atoms from runtime channel data. - [Chimeway.Dispatch.DeferredResumeWorker](Chimeway.Dispatch.DeferredResumeWorker.md): Oban worker that resumes a deferred delivery row and enqueues the canonical delivery performer in the same transaction. - [Chimeway.Dispatch.DigestFlushWorker](Chimeway.Dispatch.DigestFlushWorker.md): Thin Oban worker that delegates due digest bucket execution to the emission service. - [Chimeway.Dispatch.Executor](Chimeway.Dispatch.Executor.md): Shared adapter execution for sync and Oban worker dispatch paths. - [Chimeway.Dispatch.Oban](Chimeway.Dispatch.Oban.md): Oban-backed dispatcher — satisfies `Chimeway.Dispatch` behaviour. - [Chimeway.Dispatch.ObanWorker](Chimeway.Dispatch.ObanWorker.md): Oban worker that performs a single Chimeway delivery by delivery_id. - [Chimeway.Dispatch.SignalRouterWorker](Chimeway.Dispatch.SignalRouterWorker.md): Oban worker that routes an incoming signal to all waiting workflow runs that are suspended on the signal's `event_name` within the same tenant. - [Chimeway.Dispatch.Sync](Chimeway.Dispatch.Sync.md): Synchronous dispatcher — runs the full delivery pipeline in the calling process. - [Chimeway.Dispatch.WorkflowProgressionWorker](Chimeway.Dispatch.WorkflowProgressionWorker.md): Oban worker that wakes a due waiting workflow run by stable id. - [Chimeway.Events.Event](Chimeway.Events.Event.md): Durable canonical event persisted before outbound side effects. - [Chimeway.Inbox](Chimeway.Inbox.md): Inbox query and explicit lifecycle transition APIs. - [Chimeway.Notifications.Notification](Chimeway.Notifications.Notification.md): Durable per-recipient in-app notification record. - [Chimeway.Notifier](Chimeway.Notifier.md): Behaviour contract for notification definitions. - [Chimeway.Orchestration.WindowMath](Chimeway.Orchestration.WindowMath.md): Pure time-window calculations for recipient-local orchestration decisions. - [Chimeway.Policy](Chimeway.Policy.md): Dual-checkpoint policy engine for delivery suppression decisions. - [Chimeway.Policy.Settings](Chimeway.Policy.Settings.md): Per-recipient policy settings for quiet hours and delivery caps. - [Chimeway.Policy.Settings.Setting](Chimeway.Policy.Settings.Setting.md): Per-recipient policy settings for quiet hours and delivery caps. - [Chimeway.Preferences](Chimeway.Preferences.md): Public context for notification preference management. - [Chimeway.Preferences.CategoryPreference](Chimeway.Preferences.CategoryPreference.md): Per-recipient notification preference for a delivery category. - [Chimeway.Preferences.NotificationPreference](Chimeway.Preferences.NotificationPreference.md): Per-channel notification preference for a recipient and notification key. - [Chimeway.Rendering](Chimeway.Rendering.md): Normalizes notifier rendering declarations into one durable contract. - [Chimeway.Rendering.Channel](Chimeway.Rendering.Channel.md): Behaviour contract for channel-specific render validation. - [Chimeway.Rendering.Channels.Chat](Chimeway.Rendering.Channels.Chat.md): Validates the durable chat render contract. - [Chimeway.Rendering.Channels.Email](Chimeway.Rendering.Channels.Email.md): Validates the durable email render contract. - [Chimeway.Rendering.Channels.InApp](Chimeway.Rendering.Channels.InApp.md): Validates the durable in-app render contract. - [Chimeway.Rendering.Channels.Push](Chimeway.Rendering.Channels.Push.md): Validates the durable push render contract. - [Chimeway.Rendering.Channels.Sms](Chimeway.Rendering.Channels.Sms.md): Validates the durable SMS render contract. - [Chimeway.Rendering.Preview](Chimeway.Rendering.Preview.md): Pure preview surface over the production rendering pipeline. - [Chimeway.Repo](Chimeway.Repo.md) - [Chimeway.Signal](Chimeway.Signal.md): Host-facing API boundary for submitting workflow progression signals. - [Chimeway.Signals.Signal](Chimeway.Signals.Signal.md): Durable host-submitted progression signal. - [Chimeway.Telemetry](Chimeway.Telemetry.md): Instrumentation façade for Chimeway telemetry spans. - [Chimeway.Traces](Chimeway.Traces.md): Public query context for operator trace surfaces. - [Chimeway.Traces.Explanation](Chimeway.Traces.Explanation.md): Structured explanation of a single delivery — the primary operator debugging artifact. - [Chimeway.Trigger](Chimeway.Trigger.md): Orchestrates notifier triggering with deterministic recipient normalization. - [Chimeway.Webhooks](Chimeway.Webhooks.md): Pure function boundary for synchronously ingesting and verifying inbound webhooks. - [Chimeway.Webhooks.Ingress](Chimeway.Webhooks.Ingress.md): Durable inbound webhook fact: a verified provider callback has been received, normalized, and queued for async processing. One ingress row per accepted callback; duplicate provider retries with the same `(adapter_module, provider_event_id)` collapse to the existing row via the partial unique index. - [Chimeway.Webhooks.ProcessFeedbackWorker](Chimeway.Webhooks.ProcessFeedbackWorker.md): Oban worker that processes inbound webhook feedback from a durable ingress row. - [Chimeway.Workflows](Chimeway.Workflows.md): Persistence helpers for durable workflow definitions and ordered step rows. - [Chimeway.Workflows.Progression](Chimeway.Workflows.Progression.md): Durable workflow progression engine for Phase 25. - [Chimeway.Workflows.ProgressionOutcome](Chimeway.Workflows.ProgressionOutcome.md): Pure mapper from canonical delivery facts to a curated workflow-facing outcome vocabulary used by Phase 25 progression rules. - [Chimeway.Workflows.WorkflowDefinition](Chimeway.Workflows.WorkflowDefinition.md): Durable workflow definition storage keyed by stable workflow identity. - [Chimeway.Workflows.WorkflowRun](Chimeway.Workflows.WorkflowRun.md): Durable workflow run aggregate row anchored to one notification. - [Chimeway.Workflows.WorkflowStep](Chimeway.Workflows.WorkflowStep.md): Ordered durable workflow step row linked to one workflow definition. - [Chimeway.Workflows.WorkflowTransition](Chimeway.Workflows.WorkflowTransition.md): Append-only workflow transition row capturing state changes and reasons. - Exceptions - [Chimeway.Dispatch.UnhandledOutcomeError](Chimeway.Dispatch.UnhandledOutcomeError.md): Raised by `Chimeway.Dispatch.ObanWorker` when `map_outcome_to_oban_return/4` encounters a (outcome, error_class, status) shape that none of the documented clauses match AND the in-band convergence guard cannot legally fire (delivery is not in :failed status, or this is not the final attempt). This is the loud-failure branch of the BL-02 fix — see Plan 14-10. ## Mix Tasks - [mix preview.rendering](Mix.Tasks.Preview.Rendering.md): Previews notification rendering through the production library pipeline. - [mix verify.published](Mix.Tasks.Verify.Published.md): Verifies that a specific chimeway version is published and accessible on hex.pm.