Chimeway.Webhooks.Ingress (chimeway v1.2.0)

Copy Markdown View Source

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.

Ingress rows are NOT a payload archive. They store explainability-first fields only — adapter identity, correlation keys, normalized status, processing state, and (when applicable) an ignored reason. Raw provider bodies and headers stay out of this surface by design.

Replay protection: the partial unique index on (adapter_module, provider_event_id) WHERE provider_event_id IS NOT NULL collapses duplicate provider retries that expose a stable event id. Adapters without a stable event id get best-effort dedup only.

Summary

Types

t()

@type t() :: %Chimeway.Webhooks.Ingress{
  __meta__: term(),
  adapter_module: term(),
  delivery_id: term(),
  id: term(),
  ignored_reason: term(),
  ingress_state: term(),
  inserted_at: term(),
  normalized_status: term(),
  processed_at: term(),
  provider_event_id: term(),
  provider_message_id: term(),
  updated_at: term()
}

Functions

changeset(ingress, attrs)