In-memory state in a Durable Object
In-memory state means that each Durable Object has one active instance at any particular time. All requests sent to that Durable Object are handled by that same instance. You can store some state in memory.
Variables in a Durable Object will maintain state as long as your Durable Object is not evicted from memory.
A common pattern is to initialize a Durable Object from persistent storage and set instance variables the first time it is accessed. Since future accesses are routed to the same Durable Object, it is then possible to return any initialized values without making further calls to persistent storage.
A given instance of a Durable Object may share global memory with other instances defined in the same Worker code.
In the example above, using a global variable value
instead of the instance variable this.value
would be incorrect. Two different instances of Counter
will each have their own separate memory for this.value
, but might share memory for the global variable value
, leading to unexpected results. Because of this, it is best to avoid global variables.