I think you’re slightly misunderstanding Durable Objects. The Durable Object itself is a Worker that can run arbitrary code in response to requests that create or update it. For instance, see the Counter example that implements a Counter class whose fetch() method does different operations on its in-memory and persistent state in response to requests. Or look at the source code for the chat demo that was in the original blog post, which does update all of its clients with attached WebSocket connections whenever its state changes.