# Amazon EventBridge vs Upstash QStash > Amazon EventBridge scores 73.7 (BB) to Upstash QStash's 72.3 (BB) for sending webhooks. Prices, MCP, x402, uptime and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash - Markdown: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.md (~2,450 tokens) - Slim: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.min.md (~780 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-09 Amazon EventBridge scores 73.7 (BB) on agent readiness against Upstash QStash's 72.3 (BB), and leads in 3 of 7 scored categories. Upstash QStash leads on reliability, agent ergonomics and payments & pricing. Both do sending webhooks. - Amazon EventBridge: grade BB, 73.7/100, rank #83 of 950. Markdown https://www.anchorterminal.com/tools/amazon-eventbridge.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-eventbridge.json - Upstash QStash: grade BB, 72.3/100, rank #109 of 950. Markdown https://www.anchorterminal.com/tools/upstash-qstash.md · JSON https://www.anchorterminal.com/api/v1/tools/upstash-qstash.json - Best webhook and event delivery infrastructure for AI agents: https://www.anchorterminal.com/best/webhooks/index.md - All 48 webhooks comparisons: https://www.anchorterminal.com/compare/webhooks/index.md ## Which one, for what ### Amazon EventBridge (BB) Good for: Teams already on AWS that want events routed between AWS services, their own code and outside HTTPS endpoints under IAM, with retention and replay on the bus. Ahead on: - Security & auth, 88 against 61 - Transparency & trust, 87 against 81 Watch for: Classic `PutEvents` has no idempotency token or deduplication, and failed entries come back inside a successful response for the caller to resend ### Upstash QStash (BB) Good for: Agents and serverless apps that need a delayed, retried or scheduled HTTP call without running a queue. Ahead on: - Reliability, 83 against 73 - Agent ergonomics, 83 against 73 - Payments & pricing, 40 against 35 Also in its favour: - Free to start without a card Watch for: One full-access token and one read-only token per region. No per-queue or per-destination scopes were found ## Score by category | Category | Weight | Amazon EventBridge | Upstash QStash | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 73 | 83 | Upstash QStash +10 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 82 | 78 | Amazon EventBridge +4 | | Agent ergonomics | 13% (16.2 this run) | 73 | 83 | Upstash QStash +10 | | Security & auth | 14% (17.5 this run) | 88 | 61 | Amazon EventBridge +27 | | Payments & pricing | 10% (12.5 this run) | 35 | 40 | Upstash QStash +5 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 75 | 77 | Upstash QStash +2 | | Transparency & trust | 7% (8.8 this run) | 87 | 81 | Amazon EventBridge +6 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **73.7 · BB** | **72.3 · BB** | | ## Facts side by side | Fact | Amazon EventBridge | Upstash QStash | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Amazon Web Services | Upstash | | Hosted endpoint | `https://events.us-east-1.amazonaws.com` | `https://qstash.upstash.io/v2` | | Transports | HTTP | HTTP, Streamable HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Pay per use | Freemium | | x402 | no | no | | Licence | Proprietary service under the AWS Customer Agreement. The AWS SDKs, the API models and the agent toolkit skill are Apache-2.0 | Proprietary hosted service under Upstash's terms of service. The TypeScript and Python SDKs and the MCP server are MIT | | Tools exposed | none | 10 | | Read-only variant documented | no | yes | | llms.txt | yes | yes | | MCP registry | not listed | `io.github.upstash/mcp-server` | | Last release | 2026-09-24 | 2026-09-29 | | Terms last updated | 2026-08-14 | | | Privacy policy last updated | 2026-05-18 | | | Customer content may train models | not found in the text | | | Terms restrict automated access | not found in the text | | | Terms restrict benchmarking | not found in the text | | | Terms or service can change without notice | not found in the text | | | Arbitration or class-action waiver | yes | | | Popularity | 3.2M npm/wk | 269 stars, 816k npm/wk, 91k PyPI/wk | ## Verdicts **Amazon EventBridge.** IAM policies scope a credential to single actions and buses, and an SLA commits 99.99 per cent monthly uptime per Region. The Custom Event Bus API of 24 September 2026 adds retention, replay, ordering and publish-time deduplication. Classic `PutEvents` takes no idempotency token and answers 200 for a bus that does not exist. A person must open the AWS account. **Upstash QStash.** A public OpenAPI 3.1 file covers 43 operations, and publishing has no per-second limit, deduplication IDs and a dead letter queue with replay. Each region has one full-access token and one read-only token, and the token may travel in the URL. The Markdown pricing page contradicts itself on whether retries are billed. ## Before you call either ### Amazon EventBridge 1. Use `aws eventsv2` and the `EventBridgeV2` SDK client for the Custom Event Bus, but write IAM actions with the `events:` prefix. A policy naming `eventsv2:` grants nothing 2. After a Classic `PutEvents` call, check `FailedEntryCount` and each entry's `ErrorCode`, then resend failed entries yourself. A request holds up to 10 entries and under 1 MB 3. Set `SystemMetadata.DeduplicationId` on Custom Event Bus entries when retrying a publish, and treat a `SuccessCode` of `DEDUPLICATED` as success 4. Set `RetryPolicy` and `OnFailureConfiguration` when creating a subscriber. The defaults stop after 5 attempts or 300 seconds, and an exhausted event is dropped 5. Store the full bus ARN. A Custom Event Bus ARN ends in a generated identifier that changes when a bus of the same name is recreated ### Upstash QStash 1. Use the regional host that matches the token. `qstash.upstash.io` is the EU region, and US tokens work only on `qstash-us-east-1.upstash.io` 2. Send `Upstash-Deduplication-Id` on every publish so a retried request isn't queued twice. The window is 10 minutes 3. Budget for retries. Per the pricing FAQ each delivery attempt is billed as a message, so set `Upstash-Retries` deliberately 4. Give monitoring agents the read-only token, and set `Upstash-Redact-Fields` on publish, because that token still reads message bodies and headers 5. Make the destination idempotent on `Upstash-Message-Id`. Delivery is at least once, and duplicates can follow a server restart ## Questions ### Which is better for AI agents, Amazon EventBridge or Upstash QStash? Amazon EventBridge scores 73.7 (BB) on agent readiness against Upstash QStash's 72.3 (BB), and leads in 3 of 7 scored categories. Upstash QStash leads on reliability, agent ergonomics and payments & pricing. ### Do Amazon EventBridge and Upstash QStash need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call Amazon EventBridge and Upstash QStash without installing anything? Yes. Amazon EventBridge has a hosted endpoint at https://events.us-east-1.amazonaws.com and Upstash QStash at https://qstash.upstash.io/v2. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "amazon-eventbridge", "b": "upstash-qstash"}`. From a terminal: `anchor compare amazon-eventbridge upstash-qstash` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-eventbridge.json and https://www.anchorterminal.com/api/v1/tools/upstash-qstash.json ## Other comparisons with Amazon EventBridge or Upstash QStash - [Ably vs Amazon EventBridge](https://www.anchorterminal.com/compare/ably-vs-amazon-eventbridge.md) - [Amazon EventBridge vs Convoy](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-convoy.md) - [Amazon EventBridge vs Hook0](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-hook0.md) - [Amazon EventBridge vs Hookdeck](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-hookdeck.md) - [Amazon EventBridge vs PubNub](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-pubnub.md) - [Amazon EventBridge vs Pusher Channels](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-pusher-channels.md) - [Amazon EventBridge vs Svix](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-svix.md) - [Amazon EventBridge vs Webhook Relay](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-webhook-relay.md) - [Convoy vs Upstash QStash](https://www.anchorterminal.com/compare/convoy-vs-upstash-qstash.md) - [Hook0 vs Upstash QStash](https://www.anchorterminal.com/compare/hook0-vs-upstash-qstash.md) - [PubNub vs Upstash QStash](https://www.anchorterminal.com/compare/pubnub-vs-upstash-qstash.md) - [Pusher Channels vs Upstash QStash](https://www.anchorterminal.com/compare/pusher-channels-vs-upstash-qstash.md) - [Svix vs Upstash QStash](https://www.anchorterminal.com/compare/svix-vs-upstash-qstash.md) - [Hookdeck vs Upstash QStash](https://www.anchorterminal.com/compare/hookdeck-vs-upstash-qstash.md) - [Ably vs Upstash QStash](https://www.anchorterminal.com/compare/ably-vs-upstash-qstash.md) - [Upstash QStash vs Webhook Relay](https://www.anchorterminal.com/compare/upstash-qstash-vs-webhook-relay.md)