{"id":"realtime-agent-channel","slug":"realtime-agent-channel","name":"Realtime agent↔user channel","shortName":"Realtime agent↔user channel","problemStatement":"Stream agent tokens, tool progress, and presence to clients over WebSocket/SSE with pub/sub semantics — not email/SMS and not a backend work queue.","whenNotTopPick":"Need full chat UX (channels, moderation, reactions) — Stream; only server-side job fanout — QStash/SQS/EventBridge; Cloudflare Durable Objects already hold your edge state.","categoryIds":["cat-comms","cat-cpu-compute"],"depotPickProviderId":"ably","depotPickRationale":"Reliability + dx for realtime fanout. Distinct from notification-orchestration and serverless-agent-queue.","runnersUpIds":["getstream","cloudflare-workers","supabase-pgvector"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"Reliability + dx for realtime fanout. Distinct from notification-orchestration and serverless-agent-queue.","tags":["realtime"],"depth":{"whenNotToUse":{"text":"Need full chat UX (channels, moderation, reactions) — Stream; only server-side job fanout — QStash/SQS/EventBridge; Cloudflare Durable Objects already hold your edge state.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"getstream","name":"Stream (GetStream)","overallForJob":7.94,"pickOverallForJob":8.29,"beatsPickOn":["developerDx"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":5.2,"runnerUpLockInRisk":5.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"centrifugo","name":"Centrifugo","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/centrifugal/centrifugo/master/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Stream (GetStream) (5.2 vs 5.5). Self-host fallback listed for this job: Centrifugo.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":3,"sourcesReachable":3,"pricingRows":6,"pricingRowsReconfirmed":6,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}}}