Skip to content

Commit 5d34acd

Browse files
committed
docs(webhooks): address review on pricing and limits
- Filters only skip subscribers: a waiting run still resumes - Runs are billed an invocation cost plus compute - Enterprise rows for processing concurrency and delivery retention - Qualify the 30-day storage claim for strict retention - Scope the waiter table's live-waiter defaults to self-hosted - Grammar fixes in limits and the changeset
1 parent 451d78c commit 5d34acd

7 files changed

Lines changed: 11 additions & 10 deletions

File tree

‎.changeset/cost-skill-webhook-filters.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"@trigger.dev/sdk": patch
33
---
44

5-
The bundled `trigger-cost-savings` skill now notes that a webhook delivery no subscriber's filter matches starts no run and costs no compute.
5+
The bundled `trigger-cost-savings` skill now notes that a webhook delivery starts no run when no subscriber's filter matches, so it costs no compute.

‎docs/how-to-reduce-your-spend.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ Waiting saves you compute, but it doesn't always free up concurrency — see [Wa
192192

193193
## Filter webhooks before they start runs
194194

195-
Give each [webhook](/webhooks/overview) subscriber a [filter](/webhooks/filters) so it only runs for the events it handles. A delivery that no filter matches is recorded as `FILTERED` and starts no run, so you aren't charged compute for it. Receiving webhooks has no separate charge.
195+
Give each [webhook](/webhooks/overview) subscriber a [filter](/webhooks/filters) so it only runs for the events it handles. A delivery that no subscriber's filter matches starts no run for any subscriber, so you aren't charged for it. Filters only apply to subscribers: a run [waiting](/webhooks/waiters) for a matching webhook still resumes and uses compute. Receiving webhooks has no separate charge.
196196

197197
## Use debounce to consolidate multiple triggers
198198

‎docs/limits.mdx‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,14 @@ A waiter can wait for up to 90 days.
193193

194194
## Webhook processing concurrency
195195

196-
This limit controls how many webhook deliveries and waiter resumes are processed at once per environment. More wait their turn. It is not a limit on the runs those deliveries start, which use your normal [concurrency limits](#concurrency-limits).
196+
This limit controls how many webhook deliveries and waiter resumes are processed at once per environment. Additional deliveries wait their turn. It is not a limit on the runs those deliveries start, which use your normal [concurrency limits](#concurrency-limits).
197197

198198
| Pricing tier | Limit |
199199
| :----------- | :----------------------- |
200200
| Free | 5 concurrent deliveries |
201201
| Hobby | 10 concurrent deliveries |
202202
| Pro | 50 concurrent deliveries |
203+
| Enterprise | Set per organization |
203204

204205
## Webhook delivery retention
205206

@@ -212,7 +213,7 @@ How long [deliveries](/webhooks/deliveries) stay visible in the dashboard and th
212213
| Pro | 30 days |
213214
| Enterprise | 90, 180 or 365 days |
214215

215-
Deliveries are stored for at least 30 days, so upgrading your plan shows older deliveries right away.
216+
By default, deliveries are stored for at least 30 days, so upgrading your plan shows older deliveries that are still stored. An organization can ask us to store deliveries only for its retention period instead. Deliveries past that period are then deleted and can't be shown again after an upgrade.
216217

217218
## Webhook subscribers
218219

‎docs/webhooks/deliveries.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ The [MCP server](/mcp-introduction) has `list_webhook_deliveries` (filter by end
7272

7373
## Retention
7474

75-
Deliveries stay visible for 3 days on Free, 7 days on Hobby and 30 days on Pro. See [Limits](/limits#webhook-delivery-retention).
75+
Deliveries stay visible for 3 days on Free, 7 days on Hobby, 30 days on Pro, and 90, 180 or 365 days on Enterprise. See [Limits](/limits#webhook-delivery-retention).
7676

7777
## Deduplication
7878

‎docs/webhooks/overview.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ A request must pass verification before anything else happens. Provider handshak
8585

8686
## Pricing and limits
8787

88-
Webhooks have no separate charge on Trigger.dev Cloud. Receiving, verifying, filtering and recording deliveries is included in every plan. The runs a delivery starts or resumes are billed like any other run, by compute time. See [pricing](https://trigger.dev/pricing).
88+
Webhooks have no separate charge on Trigger.dev Cloud. Receiving, verifying, filtering and recording deliveries is included in every plan. The runs a delivery starts or resumes are billed like any other run: a per-run invocation cost plus compute time. See [pricing](https://trigger.dev/pricing).
8989

90-
A delivery that no subscriber's filter matches starts no run, so it uses no compute. A run [waiting](/webhooks/waiters) for a webhook is suspended, so it uses no compute until the webhook arrives.
90+
A delivery that no subscriber's filter matches starts no run for any subscriber, so it costs nothing. A run already waiting for that webhook still resumes. A run [waiting](/webhooks/waiters) for a webhook is suspended, so it uses no compute until the webhook arrives.
9191

9292
Each plan sets limits on the ingest rate, waiting runs, processing concurrency and how long deliveries are kept. See [Limits](/limits#webhook-ingest-rate-limits).
9393

‎docs/webhooks/waiters.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ if (!result.cancelled) {
178178

179179
| Limit | Default |
180180
| --- | --- |
181-
| Live waiters per endpoint | 10,000. This is also the most one delivery can resume. |
182-
| Live waiters per environment | 1,000,000 on self-hosted installs. |
181+
| Live waiters per endpoint | Depends on your plan on Trigger.dev Cloud, 10,000 on self-hosted installs. This is also the most one delivery can resume. |
182+
| Live waiters per environment | Depends on your plan on Trigger.dev Cloud, 1,000,000 on self-hosted installs. |
183183
| Distinct sets of `match` paths per endpoint | 25 |
184184
| Paths per `match` | 5 |
185185
| Tags per waiter | 10 |

‎packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Larger machines cost proportionally more per second of compute:
105105
## Key principles
106106

107107
- **Waits > 5 seconds are free** — checkpointed, no compute charge.
108-
- **Webhook filters skip runs** — a webhook delivery that no subscriber's filter matches starts no run and costs no compute. Receiving webhooks has no separate charge.
108+
- **Webhook filters skip runs** — a webhook delivery starts no run when no subscriber's filter matches, so it costs no compute (a run already waiting for that webhook still resumes). Receiving webhooks has no separate charge.
109109
- **Start small, scale up** — the default `small-1x` is right for most tasks.
110110
- **I/O-bound tasks don't need big machines** — API calls and DB queries wait on the network.
111111
- **Debounce saves the most on high-frequency tasks** — it consolidates bursts into single runs.

0 commit comments

Comments
 (0)