How It Works
Pipeline
Section titled “Pipeline”- UI wysyła
init-uploadi dostaje podpisany URL uploadu. - Po uploadzie UI wywołuje
complete-upload. - Backend tworzy job (
queued) i uruchamia queue/workflow. - Worker konsument kolejki:
- wywołuje providera,
- normalizuje wynik,
- zapisuje metadane do D1,
- zapisuje payload JSON/audio do R2,
- aktualizuje progress.
- Provider webhook może wznowić workflow i uruchomić kolejny etap.
- Export końcowy jest odkładany do
dubbit-exports.
Idempotency
Section titled “Idempotency”jobs.idempotency_keyzabezpiecza tworzenie jobów.provider_callsma unikalność(job_id, provider, endpoint, request_hash).- Retry kolejki nie duplikuje kosztu API, tylko aktualizuje status tego samego wywołania.
Realtime status
Section titled “Realtime status”JobStatusDO publikuje snapshot i strumień SSE dla UI (/api/jobs/:jobId/events).