Skip to content

How It Works

  1. UI wysyła init-upload i dostaje podpisany URL uploadu.
  2. Po uploadzie UI wywołuje complete-upload.
  3. Backend tworzy job (queued) i uruchamia queue/workflow.
  4. Worker konsument kolejki:
    • wywołuje providera,
    • normalizuje wynik,
    • zapisuje metadane do D1,
    • zapisuje payload JSON/audio do R2,
    • aktualizuje progress.
  5. Provider webhook może wznowić workflow i uruchomić kolejny etap.
  6. Export końcowy jest odkładany do dubbit-exports.
  • jobs.idempotency_key zabezpiecza tworzenie jobów.
  • provider_calls ma unikalność (job_id, provider, endpoint, request_hash).
  • Retry kolejki nie duplikuje kosztu API, tylko aktualizuje status tego samego wywołania.

JobStatusDO publikuje snapshot i strumień SSE dla UI (/api/jobs/:jobId/events).