Trigger a Notification
Chimeway.trigger(
MyApp.OrderShippedNotifier,
%{order_id: "ord-123", user_id: 42},
idempotency_key: "order-shipped-ord-123",
correlation_id: "req-abc"
)
# => {:ok, %{event: %Event{}, notifications: [...]}}
Query Recipient Inbox
# All unread notifications for a recipient
Chimeway.Inbox.list_for("user:42", unread_only: true)
# Mark a notification as read
Chimeway.Inbox.mark_read(notification_id, "user:42")
Explain a Delivery
{:ok, explanation} = Chimeway.Traces.explain_delivery("delivery-uuid")
explanation.status #=> :suppressed
explanation.suppression_reason #=> "channel_disabled"
explanation.timeline #=> [%{at: ~U[...], event: :event_created, detail: %{}}, ...]
Delivery States
| State | Meaning |
|---|
:pending | Planned but not yet dispatched |
:dispatched | Send in progress |
:succeeded | Provider confirmed delivery |
:failed | Provider returned an error |
:suppressed | Delivery skipped by policy |
Trace a Notification
# Full trace by event ID
{:ok, event} = Chimeway.Traces.get_trace("event-uuid")
# All traces for a recipient
traces = Chimeway.Traces.find_traces_for_recipient("user:42",
notification_key: "order_shipped",
limit: 10
)
# By correlation ID (e.g., request ID)
events = Chimeway.Traces.find_traces_by_correlation_id("req-abc")