---
id: "0002"
date: 2026-02-10
status: Accepted
supersedes: "0001"
superseded-by:
affected-paths: [taskq/execution.py, taskq/queue.py]
affected-components: [execution, queue]
---

# 0002 — Job timeouts with exponential backoff, max 3 attempts

## Context

Simple retries caused cascade failures. Transient failures need backoff.

## Decision

Jobs timeout after 5 minutes. Failed jobs retry with exponential backoff (1s, 2s, 4s) up to 3 total attempts. Permanent failure escalates to review queue.

## Consequences

Better resilience. Reduced cascading failures. Terminal failures tracked for review.

## Alternatives rejected

Circuit breaker rejected (adds complexity without benefit at this scale).
