I was having a look through the Durable Object documentation and I couldn’t find much information about the memory allocation semantics, what I’ve gathered is that each durable object is executed on a 128MB isolate. Multiple classes can run on the same isolate, sharing memory. My question is, what happens when this memory is exhausted, does this shutdown the entire isolate and does this mean the durable objects will be moved onto seperate 128MB instances?
Here is a more concrete example, I create a MyProcessor class, create three durable objects with a websocket server on each that need 50MB of local memory whilst the connection remains open, what will happen if they are all allocated to the same isolate?
Additional question, as it is not specifically mentioned anywhere, can I run WASM on a durable object? It looks like the rust runtime supports durable objects and my guess was that this meant WASM is supported. Is this true?