Framework.Overlay.DLQBrowser (Framework v0.5.0)

View Source

Dead Letter Queue Browser for observability overlay.

Provides inspection and management of failed effects in the dead letter queue. Essential for debugging effect execution failures and manual recovery operations.

Features

  • Dead letter queue inspection
  • Failure pattern analysis
  • Manual effect retry with same idempotency key
  • Effect execution history
  • Bulk operation tools

Summary

Functions

Analyze effect failure patterns.

Get classification summary for failed jobs.

Get total count of failed jobs in the system.

Get dead letter queue entries.

Get dead letter statistics and trends.

Get effect execution history for an external_id.

List failed jobs with pagination for DLQ browser.

Replay a dead letter effect with same idempotency key.

Replay a failed job with same idempotency key.

Count jobs that breach SLO (not drained within 24h).

Functions

analyze_failure_patterns(time_window_hours \\ 168)

Analyze effect failure patterns.

Identifies common failure modes and suggests remediation strategies.

Parameters

  • time_window_hours: Analysis period (default 168 = 1 week)

Returns

Comprehensive failure analysis with recommendations

bulk_retry_dead_letters(filters \\ %{}, options \\ %{})

Bulk retry multiple dead letters.

Attempts to replay multiple failed effects with filtering and batching.

Parameters

  • filters: Criteria for selecting jobs to retry
  • options: Bulk operation options
    • batch_size: Process in batches of N (default 10)
    • max_jobs: Maximum jobs to process (default 100)
    • delay_between_batches_ms: Delay between batches (default 1000)

Returns

Bulk operation results with individual job outcomes

classification_summary()

Get classification summary for failed jobs.

failed_jobs_count()

Get total count of failed jobs in the system.

get_dead_letters(limit \\ 50, filters \\ %{})

Get dead letter queue entries.

Returns failed effects awaiting manual intervention.

Parameters

  • limit: Maximum entries to return (default 50)
  • filters: Filter criteria
    • effect_type: Filter by effect type (:webhook, :email, etc)
    • external_id: Filter by specific external_id
    • min_attempts: Minimum attempt count
    • age_hours: Only entries older than X hours

Returns

List of dead letter entries with failure analysis

get_dlq_stats(time_window_hours \\ 24)

Get dead letter statistics and trends.

Provides aggregate analysis of effect failures for operational insight.

Parameters

  • time_window_hours: Analysis period in hours (default 24)

Returns

Statistics about dead letter patterns and trends

get_effect_history(external_id)

Get effect execution history for an external_id.

Shows complete execution history including retries and final outcome.

Parameters

  • external_id: The idempotency key to trace

Returns

Complete execution timeline for the effect

list_failed_jobs(opts \\ [])

List failed jobs with pagination for DLQ browser.

replay_dead_letter(job_id, options \\ %{})

Replay a dead letter effect with same idempotency key.

Attempts to re-execute a failed effect while preserving idempotency guarantees.

Parameters

  • job_id: Oban job ID of the dead letter
  • options: Replay configuration
    • preserve_idempotency: Keep same external_id (default true)
    • modify_payload: Optional payload modifications
    • dry_run: Only validate, don't execute (default false)

Returns

Replay result with execution status and details

replay_with_same_idempotency_key(job_id)

Replay a failed job with same idempotency key.

slo_breach_count(opts \\ [])

Count jobs that breach SLO (not drained within 24h).