{"jtbd":{"id":"event-driven-agent-jobs","slug":"event-driven-agent-jobs","name":"Event-driven agent jobs with great DX","shortName":"Event-driven agent jobs with great DX","problemStatement":"Fan-out, debounce, and retry agent work from events without operating queues."},"pick":{"id":"inngest","slug":"inngest","name":"Inngest","tagline":"Best DX default for durable agent workflows in TypeScript/Python. Temporal when you need harder multi-lang…","website":"https://www.inngest.com","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Hobby $0 (50k executions); Pro from $99/mo (1M executions, PAYG to 20M); Enterprise custom. OSS self-host available. Step functions with retries, fan-out, and observability aimed at event-driven agents.","scores":{"capabilityFit":8.2,"pricePerformance":8,"latencyReliability":8.4,"developerDx":9,"privacyPosture":7.8,"lockInRisk":4.2,"maturity":7.8,"overall":8.07,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"trigger-dev","slug":"trigger-dev","name":"Trigger.dev","tagline":"Pick for TS app background agent jobs. Inngest for event meshes; Temporal for polyglot durability.","website":"https://trigger.dev","overall":7.84,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.84,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (trigger.dev/pricing): Free $0 with $5 credits, 20 concurrent; Hobby $10/mo; Pro $50/mo ($50 credits, 200+ concurrent then $10/mo per 50). Compute: Micro 0.25 vCPU $0.0000169/s; Small-1x $0.0000338/s; up to Large-2x 8 vCPU $0.0006800/s. Invocation $0.000025/prod run. DEV env free. Apache-2.0 self-host. HIPAA BAA add-on. Python via build extension inside TS tasks.","scores":{"capabilityFit":7.8,"pricePerformance":8.2,"latencyReliability":8,"developerDx":9.2,"privacyPosture":7.5,"lockInRisk":4.8,"maturity":7.2,"overall":7.84,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"upstash-qstash","slug":"upstash-qstash","name":"Upstash QStash","tagline":"Depot pick for a raw serverless agent event backbone (webhooks, delayed retries, fan-out) without operating…","website":"https://upstash.com","overall":8.38,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.38,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (upstash.com/pricing/qstash): Free 1k messages/day, 50 GB, 1 MB max. PAYG $1 per 100k messages (unlimited/day, 10 MB, 1-year delay); bandwidth free to 50 GB then $0.05/GB. Fixed 1M $180/mo; Fixed 10M $420/mo; Enterprise custom. Retries billed per delivery attempt. HTTP callbacks up to 2h (PAYG) / 12h (Fixed 10M). Prod Pack add-on for SOC2/SLA on non-Enterprise.","scores":{"capabilityFit":8.2,"pricePerformance":9.2,"latencyReliability":8.4,"developerDx":9.2,"privacyPosture":7.8,"lockInRisk":3.5,"maturity":8,"overall":8.38,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"temporal-cloud","slug":"temporal-cloud","name":"Temporal Cloud","tagline":"Default durable orchestration for serious long-running agents. Inngest/Trigger.dev for lighter DX.","website":"https://temporal.io","overall":8.02,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8.02,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-10-21 (temporal.io/pricing and docs.temporal.io/cloud/pricing, fetched 2026-10-21): Durable execution for long-running agent workflows. Developer plan is Pay-As-You-Go with no base monthly fee ('No base fee - 10% of Usage Spend') and Actions at $50 per million at every volume. Business is 'Greater of $500/mo or 10% of usage', includes 2.5M Actions, 2.5 GB Active Storage and 100 GB Retained Storage, with progressive Action discounts ('Self service down to $25 per million actions'). Storage is metered separately: $0.042 per GBh active, $0.00105 per GBh retained. Enterprise and Mission Critical are priced annually via Sales. temporal.io/pricing also lists 'Free $150 credits for 90 days'. The earlier 'Cloud Essentials' plan no longer appears on either page. See plan limits (/api/estimate) for the encoded plans. OSS Temporal free to self-host. Best for reliable multi-step agent orchestration with retries/state.","scores":{"capabilityFit":9,"pricePerformance":6.8,"latencyReliability":9.2,"developerDx":7.2,"privacyPosture":8.2,"lockInRisk":5,"maturity":9.2,"overall":8.02,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"hatchet","slug":"hatchet","name":"Hatchet","tagline":"Temporal/Inngest peer for agent task orchestration. Prefer Temporal for serious durability; Inngest for TS…","website":"https://hatchet.run","overall":8.02,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8.02,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (hatchet.run/pricing): Developer Free + usage — first 100k task runs included then $10 per 1M runs; SOC2. Team $500/mo + usage (10 users, 5 tenants, 3-day retention, 500 RPS). Scale $1,000/mo + usage (unlimited users/tenants, 7-day retention, audit/HIPAA). Enterprise custom (SSO, BYOC, SLAs). Apache-2.0 self-host free.","scores":{"capabilityFit":8.2,"pricePerformance":7.8,"latencyReliability":8.4,"developerDx":8.6,"privacyPosture":8.2,"lockInRisk":3.2,"maturity":7.2,"overall":8.02,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"restate","slug":"restate","name":"Restate","tagline":"Strong Temporal alternative for durable AI agents, especially on Workers/Vercel. Remains medium until paid…","website":"https://restate.dev","overall":8.15,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.15,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Restate Cloud public usage-based — free tier 50k actions/mo, no card (restate.dev/blog/announcing-restate-cloud-public + docs). Paid action rates sales/console (marketing /pricing page thin to bots). BYOC (Jul 2026) for VPC-managed control plane. SOC2 / Enterprise SSO / HIPAA announced. Integrates invoker tunnel with Cloudflare Workers, Vercel Functions, Deno Deploy. ctx.get/set state reads/writes typically not billed as actions.","scores":{"capabilityFit":8.6,"pricePerformance":7.8,"latencyReliability":8.8,"developerDx":8.4,"privacyPosture":8.4,"lockInRisk":3.8,"maturity":7.4,"overall":8.15,"kind":"curated_estimate","confidence":"medium","asOf":"2026-09-14"}},{"id":"dbos","slug":"dbos","name":"DBOS","tagline":"Embed durable steps in your app's Postgres rather than running a separate workflow cluster. Temporal remains…","website":"https://www.dbos.dev","overall":7.99,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.99,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (dbos.dev/pricing): OSS DBOS Transact free (self-host). DBOS Pro $99/mo — 2 seats, manage apps, 1M free checkpoints/mo then $50/M. Teams $499/mo — 10 seats, 10 apps, 10M free checkpoints then $40/M, RBAC/alerting. Enterprise custom + self-hosted Conductor. Checkpoints = workflows/steps/transactions.","scores":{"capabilityFit":8,"pricePerformance":8,"latencyReliability":8.6,"developerDx":8.4,"privacyPosture":8.4,"lockInRisk":3.4,"maturity":7,"overall":7.99,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"inngest","pickName":"Inngest","pickScore":8.07,"highestScoredCandidateId":"upstash-qstash","highestScoredCandidateName":"Upstash QStash","highestScore":8.38,"pickHasLowerCompositeScore":true,"delta":-0.31,"pickLeadsOnDimensions":[],"explanation":"Inngest (8.07) is the editorial pick for Event-driven agent jobs with great DX over higher-composite Upstash QStash (8.38) because composite scores are provider-wide priors while Inngest wins on job-specific execution fit: DX + reliability balance; Inngest default for most product agents."},"cheapest":null,"recommendedWorkloadQuote":{"providerId":"inngest","providerName":"Inngest","skuId":"inngest-free","item":"Free","plan":"Free — 50k executions","unit":"usd_per_month","amountUsd":0,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","pricingLastVerifiedAt":"2026-10-27","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"inngest-free","item":"Free","plan":"Free — 50k executions","amountUsd":0,"inputOrUnitUsd":0,"unit":"usd_per_month","outputUsd":null,"outputUnit":null,"sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0,"totalUsd":0,"estimatedTotalUsd":0,"perTaskUsd":0,"estimatedCostPerTaskUsd":0,"formula":"Monthly base plan $0/mo covering 1,000 tasks (1.15x overhead buffer)","assumptions":"Monthly subscription plan amortized over 1,000 tasks/month."}},"representativeQuote":{"skuId":"inngest-free","item":"Free","plan":"Free — 50k executions","amountUsd":0,"inputOrUnitUsd":0,"unit":"usd_per_month","outputUsd":null,"outputUnit":null,"sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0,"totalUsd":0,"estimatedTotalUsd":0,"perTaskUsd":0,"estimatedCostPerTaskUsd":0,"formula":"Monthly base plan $0/mo covering 1,000 tasks (1.15x overhead buffer)","assumptions":"Monthly subscription plan amortized over 1,000 tasks/month."},"freeAlternatives":[{"id":"hatchet","name":"Hatchet","kind":"dev_tool","providerId":"hatchet","jtbdIds":["event-driven-agent-jobs"],"whatYouGet":"Self-hostable engine for background tasks and AI agents. The README says event-based triggering is for event-driven systems, and that tasks have configurable retries. It does not say debounce or fan-out. Hatchet Cloud is not this row.","cost":"oss","license":"MIT","limits":null,"sourceUrl":"https://raw.githubusercontent.com/hatchet-dev/hatchet/main/LICENSE","asOf":"2026-10-25","notes":"LICENSE fetched 2026-10-03 is MIT, copyright 2023-present Hatchet Technologies Inc. README fetched the same day. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'MIT License' / 'Copyright (c) 2023-present Hatchet Technologies Inc.'. License unchanged.","freeType":"dev_tool","substitutable":true},{"id":"upstash-qstash-free","name":"Upstash QStash Free plan","kind":"free_queue","jtbdIds":["serverless-agent-queue","event-driven-agent-jobs"],"whatYouGet":"Serverless message queue and scheduler: 1,000 messages per day, 10 active schedules, 1 MB max message size, 50 GB monthly bandwidth. Each delivery attempt, including each retry, counts as a message per the page FAQ.","cost":"free","license":null,"sourceUrl":"https://upstash.com/pricing/qstash","notes":"Fetched 2026-10-21. Retry billing conflict on the page's own markdown (see pack everyday-infra cron-scheduled-jobs).","providerId":"upstash-qstash","limits":{"messagesPerDay":1000,"activeSchedules":10,"maxMessageSizeMb":1,"bandwidthGbPerMonth":50},"asOf":"2026-10-21","freeType":"free_queue","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"event-driven-agent-jobs","jtbdName":"Event-driven agent jobs with great DX","currentPickId":"inngest","currentPickScore":8.07,"challengerId":"trigger-dev","challengerScore":7.84,"currentScoreGap":0.23,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.38,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Trigger.dev (trigger-dev) outperforms Inngest (inngest) by >= 0.38 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Inngest's representative SKU for event-driven-agent-jobs without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=inngest) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"trigger-dev","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.38,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"inngest","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"inngest","immediateOverrideUrl":"/api/decide?jtbd=event-driven-agent-jobs&exhausted=inngest"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=event-driven-agent-jobs","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"event-driven-agent-jobs","providerId":"trigger-dev","outcome":"worked","detail":"Comparative production evaluation on event-driven-agent-jobs (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Trigger.dev (trigger-dev) outperforms Inngest (inngest) by >= 0.38 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Inngest's representative SKU for event-driven-agent-jobs without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=inngest) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"event-driven-agent-jobs","primary":{"providerId":"inngest","name":"Inngest","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for Event-driven agent jobs with great DX; healthy/eligible under caller constraints."},"fallback":[{"providerId":"trigger-dev","name":"Trigger.dev","overall":7.84,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.84,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."},{"providerId":"upstash-qstash","name":"Upstash QStash","overall":8.38,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.38,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."},{"providerId":"temporal-cloud","name":"Temporal Cloud","overall":8.02,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8.02,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."},{"providerId":"hatchet","name":"Hatchet","overall":8.02,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8.02,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."},{"providerId":"restate","name":"Restate","overall":8.15,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.15,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."},{"providerId":"dbos","name":"DBOS","overall":7.99,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.99,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Event-driven agent jobs with great DX."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"inngest","activePrimaryId":"inngest","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"event-driven-agent-jobs","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":false,"scoreGap":0.23,"decidingFactor":null,"tieNote":null,"rationale":"DX + reliability balance; Inngest default for most product agents.","whenNotTopPick":"Polyglot extreme scale — Temporal; raw HTTP delayed callbacks without a workflow runtime — Upstash QStash; pure Python GPU jobs — Modal.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14: Hobby $0 (50k executions); Pro from $99/mo (1M executions, PAYG to 20M); Enterprise custom. OSS self-host available. Step functions with retries, fan-out, and observability aimed at event-driven agents.","cite":"Depot Pick for event-driven-agent-jobs: inngest (asOf 2026-09-14). See GET /api/jtbds/event-driven-agent-jobs + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/event-driven-agent-jobs?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=event-driven-agent-jobs","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/inngest","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=event-driven-agent-jobs","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"Polyglot extreme scale — Temporal; raw HTTP delayed callbacks without a workflow runtime — Upstash QStash; pure Python GPU jobs — Modal.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"trigger-dev","name":"Trigger.dev","overallForJob":7.84,"pickOverallForJob":8.07,"beatsPickOn":["pricePerformance","developerDx"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.2,"runnerUpLockInRisk":4.8,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"hatchet","name":"Hatchet","license":"MIT","sourceUrl":"https://raw.githubusercontent.com/hatchet-dev/hatchet/main/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Trigger.dev (4.2 vs 4.8). Self-host fallback listed for this job: Hatchet.","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."}},"citation":{"text":"Agent Provider Depot (v0.12.153), Depot Pick for event-driven-agent-jobs: inngest, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/event-driven-agent-jobs","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/event-driven-agent-jobs) (v0.12.153) — Depot Pick for `event-driven-agent-jobs`: **inngest** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.153","role":"depot_pick","jtbdId":"event-driven-agent-jobs","providerId":"inngest","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/event-driven-agent-jobs","api":"https://getagentdepot.com/api/decide?jtbd=event-driven-agent-jobs"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"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":7,"pricingRowsReconfirmed":3,"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}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-09-14","2026-09-14","2026-09-14","2026-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"sourced_rows","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch","shape":"sourced_rows","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[{"id":"inngest-free","providerId":"inngest","sku":"Free","unit":"usd_per_month","amountUsd":0,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_month","priceSortEligible":false,"qualifier":"50k executions. No metered overage; execution pauses at the quota."},{"id":"inngest-pro","providerId":"inngest","sku":"Pro","unit":"usd_per_month","amountUsd":99,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_month","priceSortEligible":false,"qualifier":"Starting at $99/mo. 1M executions included. Not a ceiling."},{"id":"inngest-business","providerId":"inngest","sku":"Business","unit":"usd_per_month","amountUsd":499,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_month","priceSortEligible":false,"qualifier":"Starting at $499/mo. 10M executions included. Not a ceiling."},{"id":"inngest-extra-seat","providerId":"inngest","sku":"Extra seat","unit":"usd_per_seat","amountUsd":10,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_seat","priceSortEligible":false,"qualifier":"Pro: 15 then $10/seat. Business: 30 then $10/seat. Page does not label a billing period separate from the monthly plan."},{"id":"inngest-pro-events","providerId":"inngest","sku":"Pro event overage","unit":"usd_per_million_events","amountUsd":0.5,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_million_events","priceSortEligible":false,"qualifier":"Pro: 5m/mo included then $0.5 per 1m. Not a token price."},{"id":"inngest-pro-scores","providerId":"inngest","sku":"Pro score overage","unit":"usd_per_1k_scores","amountUsd":1.5,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_scores","priceSortEligible":false,"qualifier":"Pro: 50K included then $1.50 per 1K."},{"id":"inngest-pro-concurrent-steps","providerId":"inngest","sku":"Pro concurrent steps","unit":"usd_per_25_concurrent_steps","amountUsd":25,"currency":"USD","sourceUrl":"https://www.inngest.com/pricing","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_25_concurrent_steps","priceSortEligible":false,"qualifier":"Pro: 100 included then $25 per 25."}],"notesExcerpt":"As of 2026-09-14: Hobby $0 (50k executions); Pro from $99/mo (1M executions, PAYG to 20M); Enterprise custom. OSS self-host available. Step functions with retries, fan-out, and observability aimed at event-driven agents.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://www.inngest.com","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"Partial coverage. Providers without a fetched SKU are omitted. See GET /api/pricing."},"links":{"jtbd":"/jtbds/event-driven-agent-jobs","jtbdApi":"/api/jtbds/event-driven-agent-jobs","leaderboard":"/api/leaderboards?jtbd=event-driven-agent-jobs","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=event-driven-agent-jobs","decide":"/api/decide?jtbd=event-driven-agent-jobs","humanPage":"/jtbds/event-driven-agent-jobs","alternatives":"/api/alternatives?provider=inngest","canonical":"/api/canonical","quote":"/api/quote?jtbd=event-driven-agent-jobs","falsify":"/api/falsify?jtbd=event-driven-agent-jobs"},"constraintBundle":{"task":null,"jtbd":"event-driven-agent-jobs","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"inngest","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=event-driven-agent-jobs"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}