{"slug":"cloudflare-os-async","verification":{"valid":true,"entries":26,"head":"f6dbebe47776423fbbfb263c12d6af2298bd7295d35de5e3285f730f51fd00a7"},"count":26,"sources":[{"id":"s1","type":"specification","url":"https://developers.cloudflare.com/workers/runtime-apis/context/","title":"Workers Context API","quote":"For HTTP-triggered Workers, `ctx.waitUntil()` can extend execution for up to 30 seconds after the response is sent or the client disconnects.","summary":"Normative lifetime and cancellation boundary for deferred promises attached to an HTTP invocation.","publisher":"Cloudflare","claim_ids":["c1"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"genesis","hash":"b17014fcdf429b0f5a93ec895fdfb24aa32e1ebaf89fd49e5e22d57c626e9b8d"},{"id":"s2","type":"specification","url":"https://developers.cloudflare.com/queues/reference/delivery-guarantees/","title":"Queues delivery guarantees","quote":"Cloudflare Queues provides at-least-once message delivery by default.","summary":"Normative delivery model: a message may be delivered more than once, so consumers must be idempotent.","publisher":"Cloudflare","claim_ids":["c2"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"b17014fcdf429b0f5a93ec895fdfb24aa32e1ebaf89fd49e5e22d57c626e9b8d","hash":"6e22d639a6768ecdcf25f8120a8f511a22850a7ff952055aae8e165fea6985df"},{"id":"s3","type":"publisher_documentation","url":"https://developers.cloudflare.com/queues/configuration/batching-retries/","title":"Queue batching and retries","quote":"if a batch of 10 messages is delivered, but the 8th message fails to be delivered, all 10 messages will be retried and thus redelivered to your consumer in full.","summary":"Batch sizing, timeouts, whole-batch retry behavior and per-message acknowledgement controls.","publisher":"Cloudflare","claim_ids":["c3"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"6e22d639a6768ecdcf25f8120a8f511a22850a7ff952055aae8e165fea6985df","hash":"13cea8553cc3390f0a217b6a67e60486487b1a231e4ffaeef2394a3aa490b987"},{"id":"s4","type":"publisher_documentation","url":"https://developers.cloudflare.com/queues/configuration/dead-letter-queues/","title":"Dead-letter queues","quote":"A dead letter queue (DLQ) is a common concept in a messaging system, and represents where messages are sent when a delivery failure occurs with a consumer after `max_retries` is reached.","summary":"DLQ activation, retention and the boundary at max_retries.","publisher":"Cloudflare","claim_ids":["c13"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"13cea8553cc3390f0a217b6a67e60486487b1a231e4ffaeef2394a3aa490b987","hash":"753385a1b254580d192d590654aed9cc43edde749c160f1c3ba171fc1c97ca51"},{"id":"s5","type":"specification","url":"https://developers.cloudflare.com/queues/platform/limits/","title":"Queues limits","quote":"Each consumer invocation has a maximum wall time of 15 minutes.","summary":"Queue message, backlog, throughput, batch and consumer duration limits.","publisher":"Cloudflare","claim_ids":["c4"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"753385a1b254580d192d590654aed9cc43edde749c160f1c3ba171fc1c97ca51","hash":"84cd2d6d6b9da23ff098346f39161125ed47431ba8f9ab9cb4004eff2a7c92b6"},{"id":"s6","type":"specification","url":"https://developers.cloudflare.com/queues/platform/pricing/","title":"Queues pricing","quote":"In most cases, it takes 3 operations to deliver a message: 1 write, 1 read, and 1 delete.","summary":"Operations-based billing, included operations and message-size multiplication.","publisher":"Cloudflare","claim_ids":["c5"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"84cd2d6d6b9da23ff098346f39161125ed47431ba8f9ab9cb4004eff2a7c92b6","hash":"25c9c15bec90d88f88788d5247668c48c6c610e6eaa6a5cba97be8f473ada67c"},{"id":"s7","type":"publisher_documentation","url":"https://developers.cloudflare.com/workflows/build/rules-of-workflows/","title":"Rules of Workflows","quote":"Steps should be named deterministically (that is, not using the current date/time, randomness, etc).","summary":"Step naming, deterministic execution and durable result replay requirements.","publisher":"Cloudflare","claim_ids":["c6"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"25c9c15bec90d88f88788d5247668c48c6c610e6eaa6a5cba97be8f473ada67c","hash":"beda1fd4c1ad5368af5016f1cdb6b6027ab1af2fa67c1b8722902ad05bd0bc3c"},{"id":"s8","type":"publisher_documentation","url":"https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/","title":"Sleeping and retrying Workflows","quote":"If you do not provide your own retry configuration, Workflows applies the following defaults:","summary":"Per-step retry, backoff, timeout and durable sleep configuration.","publisher":"Cloudflare","claim_ids":["c7"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"beda1fd4c1ad5368af5016f1cdb6b6027ab1af2fa67c1b8722902ad05bd0bc3c","hash":"913ef32168ccf7b97b35a5b44a00848511aa3fe70b3e348f1866795a36bd2412"},{"id":"s9","type":"specification","url":"https://developers.cloudflare.com/workflows/reference/pricing/","title":"Workflows pricing","quote":"Workflows are billed on four dimensions:","summary":"The Workflows request, CPU, step and storage billing units and allowances.","publisher":"Cloudflare","claim_ids":["c8"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"913ef32168ccf7b97b35a5b44a00848511aa3fe70b3e348f1866795a36bd2412","hash":"d667e2cffc57e4a2994e99a9410061fb12179e3dcece8eb8817d807cfe92063e"},{"id":"s10","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers/configuration/cron-triggers/","title":"Cron Triggers","quote":"When deploying a Worker with Wrangler any previous Cron Triggers are replaced with those specified in the `triggers` array.","summary":"UTC cron syntax, propagation, local testing, event history and replacement semantics.","publisher":"Cloudflare","claim_ids":["c9"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"d667e2cffc57e4a2994e99a9410061fb12179e3dcece8eb8817d807cfe92063e","hash":"59b6e8200dfb8bfcd8d3f95909f3e22a619290ce2ec0cd0487285d4112968806"},{"id":"s11","type":"publisher_documentation","url":"https://developers.cloudflare.com/durable-objects/api/alarms/","title":"Durable Object alarms","quote":"Alarms have guaranteed at-least-once execution and are retried automatically when the `alarm()` handler throws.","summary":"Per-object durable scheduling and retry semantics.","publisher":"Cloudflare","claim_ids":["c10"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"59b6e8200dfb8bfcd8d3f95909f3e22a619290ce2ec0cd0487285d4112968806","hash":"81f40d5a9fed250ce4b2612ccca918db31038264f21e957405a6e7f58104b55a"},{"id":"s12","type":"repository","url":"https://github.com/cloudflare/workers-sdk","title":"Cloudflare workers-sdk","quote":"Home to Wrangler, the CLI for Cloudflare Workers®","summary":"Public Wrangler and local runtime implementation containing the reported queue and Workflow development defects.","publisher":"GitHub","claim_ids":["c14","c15"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"81f40d5a9fed250ce4b2612ccca918db31038264f21e957405a6e7f58104b55a","hash":"d3763ebb22d055511f9e5f0c9b4b6f27c48711e1549b13b52c0c70c3230a0cf7"},{"id":"s13","type":"independent_measurement","url":"https://thisisacomputer.com/articles/cloudflare-workflows","title":"Working with Cloudflare Workflows","quote":"Making changes to durable workflows is tricky. Cloudflare has no documentation around this. You're on your own, so be careful.","summary":"Independent operator report on how changed Workflow step lists behave across deployments, explicitly separating observation from inference.","author":"Tim","publisher":"thisisacomputer.com","claim_ids":["c11"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"d3763ebb22d055511f9e5f0c9b4b6f27c48711e1549b13b52c0c70c3230a0cf7","hash":"4fc68ed560a735bb663241f8509381d0e2f49b61c355db7c52f9414d26c49bc5"},{"id":"s14","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers/wrangler/commands/workflows/","title":"Wrangler Workflows commands","quote":"Delete workflow - when deleting a workflow, it will also delete it's own instances","summary":"Current lifecycle commands, including delete, terminate, pause, resume and restart.","publisher":"Cloudflare","claim_ids":["c12"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"4fc68ed560a735bb663241f8509381d0e2f49b61c355db7c52f9414d26c49bc5","hash":"54ca354a3503f241832b70c7559012f9387698ed03a8ad6cffea7d2378f69233"},{"id":"p1","type":"github","url":"https://github.com/cloudflare/workers-sdk/issues/13816","title":"Queues: add API to immediately dead-letter a specific message","quote":"Cloudflare Queues push consumers currently expose ack/retry controls, and configured DLQs receive messages only after max_retries is exhausted.","summary":"Running Queues push consumers and finds there is no way to immediately dead-letter a message known to be non-retryable: the only options are to ack and lose the payload, burn all retries pointlessly, or hand-roll a parallel failure queue. Negative — a delivery-semantics gap.","author":"alexander-zuev","publisher":"GitHub — cloudflare/workers-sdk","date":"2026-05-05","claim_ids":["c13"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"54ca354a3503f241832b70c7559012f9387698ed03a8ad6cffea7d2378f69233","hash":"45e8ce8d4ca566744c81fa59fc7ef1598855b2834f1a8385e8f62b392b16235a"},{"id":"p2","type":"github","url":"https://github.com/cloudflare/workers-sdk/issues/9642","title":"Queue producer binding causes 500 errors on all routes when using `wrangler dev --remote`","quote":"When a queue producer is configured in `wrangler.toml`, ALL API routes return 500 Internal Server Error when using `wrangler dev --remote`, even routes that don't use the queue binding.","summary":"Simply declaring a queue producer binding breaks every route under wrangler dev --remote, while local dev and production are fine. Eight reactions indicate others hit it too. Negative.","author":"tobihagemann","publisher":"GitHub — cloudflare/workers-sdk","date":"2025-06-18","claim_ids":["c14"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"45e8ce8d4ca566744c81fa59fc7ef1598855b2834f1a8385e8f62b392b16235a","hash":"3de9bdd6bfd4263a7167cbc7aec6325b8dabf876a606d798bd80a4b83ef0c2ff"},{"id":"p3","type":"github","url":"https://github.com/cloudflare/workers-sdk/issues/5543","title":"Unable to test any binding that requires `--remote` with Queues","quote":"If you run a worker that uses Queues with `dev --remote`, it implodes and is completely unusable. You get obscure \"Script not found\" errors.","summary":"Because several GA bindings (Analytics Engine, Browser Rendering) only work with --remote, and Queues breaks --remote entirely, you cannot test a Worker that uses both together. Negative — a compounding hole in the local/remote story.","author":"Cherry","publisher":"GitHub — cloudflare/workers-sdk","date":"2024-04-07","claim_ids":["c14"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"3de9bdd6bfd4263a7167cbc7aec6325b8dabf876a606d798bd80a4b83ef0c2ff","hash":"838a4f105442b8a5501d311295005200db6789334352e532b92ba4d1762c14ed"},{"id":"p4","type":"hn","url":"https://news.ycombinator.com/item?id=48679522","title":"OAuth for all","quote":"Cloudflare claiming Workflows had reached \"GA\" status before offering a way to delete workflows... not via wrangler, not the dashboard, not the API.","summary":"Argues Cloudflare declares products GA before basic lifecycle operations exist, using Workflows' months-long absence of any delete path as the example, with no disclaimer that the capability was missing. Negative on Workflows' production-readiness claims.","author":"aroman","publisher":"Hacker News","date":"2026-06-25","claim_ids":["c12"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"838a4f105442b8a5501d311295005200db6789334352e532b92ba4d1762c14ed","hash":"fb8555d366c400a439360c6dc7ab0bb43d8da02df18fb840137789df6d2fb18d"},{"id":"p5","type":"hn","url":"https://news.ycombinator.com/item?id=48315400","title":"Building durable workflows on Postgres","quote":"for payment integrations on northflank since its faster than cf workflows, independent of cf and its downtime and self-hostable vendor-lock-in free","summary":"Pastes their actual routing policy across three durable-execution engines: Restate for payments (faster, and insulated from Cloudflare downtime), Cloudflare Workflows only for non-critical CSV/PDF report generation because it is very cheap, DBOS where atomicity with a Postgres transaction is required. Mixed — a concrete 'when to pick Workflows' boundary.","author":"saxenaabhi","publisher":"Hacker News","date":"2026-05-28","claim_ids":["c16"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"fb8555d366c400a439360c6dc7ab0bb43d8da02df18fb840137789df6d2fb18d","hash":"7b2668a9e89e65e63b9ad8db2cf797fd41d3fa06464f72eed794a8b0fe50f513"},{"id":"p6","type":"hn","url":"https://news.ycombinator.com/item?id=44335222","title":"What would a Kubernetes 2.0 look like","quote":"Cloudflare Workers support Cron triggers and RPC calls in the form of service bindings. Also, Cloudflare Queues support consumer workers.","summary":"Correcting a claim that Workers are HTTP-only by pointing at the actual trigger surface: Cron Triggers, service-binding RPC, and Queues consumer Workers including HTTP short polling. Positive, and useful for the choose-between-them framing.","author":"motorest","publisher":"Hacker News","date":"2025-06-21","claim_ids":["c17"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"7b2668a9e89e65e63b9ad8db2cf797fd41d3fa06464f72eed794a8b0fe50f513","hash":"ebfb9c24b94df7c41877e28186579bf021ac4c190fb5b92e8c3882b9b8b982c9"},{"id":"p7","type":"github","url":"https://github.com/cloudflare/workers-sdk/issues/14101","title":"Workflow step Uint8Array triggers SQLITE_TOOBIG locally","author":"danieltroger","quote":"string or blob too big: SQLITE_TOOBIG","summary":"Independent local reproduction: a roughly 200 KB Uint8Array step output fails while alternate serialization shapes succeed.","publisher":"GitHub — cloudflare/workers-sdk","date":"2026-06-25","claim_ids":["c15"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"ebfb9c24b94df7c41877e28186579bf021ac4c190fb5b92e8c3882b9b8b982c9","hash":"551f52b87056db1ad6504b7600266a7940129050c83a9294fb2cb0bd92c82c8b"},{"id":"r1","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/cloudflare-os-async","title":"Fresh first-party async surface inventory","quote":"JavaScript `waitUntil(` call sites | 30 across 9 files","summary":"Read-only filesystem harness counted deferred call sites, scheduled-handler calls, cron expressions, Workflow bindings and queue consumers.","publisher":"miscsubjects.com","date":"2026-07-26","claim_ids":["c18"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"551f52b87056db1ad6504b7600266a7940129050c83a9294fb2cb0bd92c82c8b","hash":"427f1e5fae6abe4d603c41a9e22fce28484b5812728a67b756b6f34bb5ea2e3c"},{"id":"r2","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/cloudflare-os-async","title":"Fresh first-party queue inventory","quote":"Live queues | `loop-ingest` 4 producers / 1 consumer; `loop-ingest-dlq` 0 / 1; `loop-tasks` 3 / 1","summary":"Wrangler 4.103.0 listed the three queues and their attached producer and consumer counts without exposing ids.","publisher":"miscsubjects.com","date":"2026-07-26","claim_ids":["c19"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"427f1e5fae6abe4d603c41a9e22fce28484b5812728a67b756b6f34bb5ea2e3c","hash":"87ad3caef9ab8fee5397a181cd7079df34495577486605391e6e3ea21488abb0"},{"id":"r3","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/cloudflare-os-async","title":"Fresh first-party 1,000-tick cron receipt","quote":"Minute slots inclusive | 1,000 expected; 1,000 observed","summary":"After PRAGMA schema inspection, a read-only D1 query fetched the newest 1,000 sibling.cron rows and compared their inclusive minute span.","publisher":"miscsubjects.com","date":"2026-07-26","claim_ids":["c20"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"87ad3caef9ab8fee5397a181cd7079df34495577486605391e6e3ea21488abb0","hash":"74b20a91ed460bec135fe4eb68213484474e9384a63e4ed5790044dde7daed41"},{"id":"r4","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/cloudflare-os-async","title":"Fresh first-party cron jitter receipt","quote":"Within the first seven seconds of the UTC minute | 996 of 1,000; worst second `:10`","summary":"The same 1,000-row sample measured arrival-second distribution and gap range.","publisher":"miscsubjects.com","date":"2026-07-26","claim_ids":["c21"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"74b20a91ed460bec135fe4eb68213484474e9384a63e4ed5790044dde7daed41","hash":"e66724effac9e85a7520509744093a5ad909459d72d49b12042d72064aef50c9"},{"id":"r5","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/cloudflare-os-async","title":"First-party queue handoff timing receipt","quote":"Median 7 seconds, on a queue configured `max_batch_size = 10`, `max_batch_timeout = 5`.","summary":"Four real enqueue-to-consumer samples measured 6–8 seconds, with the method, timestamps and API path published.","publisher":"miscsubjects.com","date":"2026-07-25","claim_ids":["c22"],"accessed_at":"2026-07-26T06:02:38.239Z","prev":"e66724effac9e85a7520509744093a5ad909459d72d49b12042d72064aef50c9","hash":"f6dbebe47776423fbbfb263c12d6af2298bd7295d35de5e3285f730f51fd00a7"}]}