Skip to main content

Comparison

ReTraced takes a different approach: while mature schedulers optimize for production throughput and abstraction, ReTraced prioritizes visibility and learning by exposing retry and failure behavior as explicit, queryable data.

Feature / CapabilityReTracedBullMQSidekiqAWS SQS + Lambda
Primary Design GoalExplicit retry & failure modeling for learning and debuggingHigh-throughput Redis-based queuesBattle-tested background jobs for RailsFully managed event-driven execution
Delivery GuaranteeAt-least-onceAt-least-onceAt-least-onceAt-least-once
Retry Strategy Configuration✅ Per-job strategy (linear, fixed, exponential, three-tier)Per-job or queue-level backoffQueue-level retry configPlatform-managed retry policies
Retry Behavior as DataFull history[] array with metadataRetry count and last errorRetry countCloudWatch logs
Retry Attempt Audit TrailTimestamp, error code, trigger type, result per attemptRetry count, last errorRetry count, last errorCloudWatch logs
Manual vs Auto Retry TrackingExplicit tracking (AUTO vs MANUAL)Not tracked separatelyNot tracked separatelyNot tracked separately
Backoff Configuration✅ Per-job (baseDelay, factor, jitter, limitOfTries)Configurable exponential backoffConfigurable backoffAWS-managed
Dead Letter Queue (DLQ)Separate DLQ with full job historyDLQ pattern supportFailed job setsNative DLQ support
DLQ ForensicsFailure type, complete retry history, error classificationJob data + errorJob data + errorMessage + error logs
Manual Retry from DLQFirst-class feature with trigger trackingManual job requeueManual job requeueRedrive policy
Poison Job HandlingExplicit poisoned statusHandled via DLQ patternHandled via dead setsHandled via DLQ
Failure ClassificationPermanent / Temporary / PoisonError handling via user codeError handling via user codeRetry vs DLQ based on config
Job Lifecycle StatesDetailed (pending, processing, delayed, dead, poisoned, completed, failed)Active, completed, failed, delayedQueued, processing, completed, failedManaged by AWS
Priority Jobs❌ Not implemented✅ Supported✅ SupportedNot natively supported
Scheduling / Cron Jobs❌ Not implemented✅ Repeatable jobs✅ Cron-style scheduling✅ EventBridge integration
Exactly-Once Semantics❌ Not implemented (at-least-once by design)Not guaranteedNot guaranteedApproximate (FIFO + deduplication)
Idempotency Support❌ Not implemented (user-managed)User-managedUser-managed✅ Native (FIFO queues)
Persistence LayerRedisRedisRedis + optional PostgreSQLFully managed by AWS
Operational ScaleEducational / small-scaleProduction-grade, high-throughputProduction-gradeMassive scale
Observability❌ Planned (basic logging currently)✅ Built-in metrics and monitoring✅ Mature monitoring ecosystem✅ CloudWatch integration
Deployment✅ Docker Compose readyDocker compatibleDocker compatibleFully managed

When to Use Each

Use ReTraced when:

  • Debugging complex retry scenarios
  • Need complete visibility into retry behavior
  • Building prototypes that require failure forensics
  • Teaching or understanding how job schedulers work internally