959 B
PostgreSQL Job System
Waarom PostgreSQL
V1 heeft beperkte workerconcurrency. PostgreSQL voorkomt een extra stateful dependency en maakt jobs, attempts, events en businessstate gezamenlijk inspecteerbaar.
Claim
Workers selecteren ready jobs met FOR UPDATE SKIP LOCKED, schrijven leased_by, lease_until en increment attempt atomair. Een heartbeat verlengt alleen een lease die nog eigendom is van die worker.
Retry
Exponential backoff met jitter, typed retryable/terminal errors en maximum attempts per jobtype. Poison jobs gaan terminal en blokkeren publication niet onzichtbaar.
Idempotency
Unieke job key op operation + immutable target + profileversion. Handlers moeten veilig opnieuw uitvoerbaar zijn na crash tussen externe side effect en databasecommit.
Observability
Iedere transition schrijft een compact event met trace ID, duur, foutcode en sanitized details. Grote parseroutput hoort in artifacts, niet in job rows.