Orleans Made Virtual Actors Practical. The Actors Still Execute on Request.

by Nick Clark | Published March 27, 2026 | PDF

Microsoft Orleans brought the virtual actor model to .NET, making distributed stateful objects as simple to use as ordinary method calls. Grains activate transparently, persist state automatically, and scale across clusters. The developer experience is remarkable. But Orleans grains activate when called and deactivate when idle. They do not carry their own execution cycle, self-evaluate from governed memory, or act autonomously. The gap is between demand-driven virtual actors and memory-resident self-executing objects.


Orleans originated from Microsoft Research and powers production systems at scale. Its virtual actor model eliminates the complexity of actor lifecycle management. The gap described here is not about the programming model. It is about what the model enables versus what autonomous execution requires.

Virtual activation is demand-driven

Orleans grains exist virtually: they always appear to be available, but physically activate only when a method is called. The runtime handles placement, activation, and deactivation transparently. This is elegant. It eliminates the need to manage actor lifecycle.

But virtual activation is demand-driven. A grain that nobody calls does not execute. A grain with urgent internal state that warrants action cannot act until something calls it. Timers and reminders provide periodic callbacks, but these are the runtime calling the grain, not the grain executing from its own evaluation.

State persistence without semantic governance

Orleans provides automatic state persistence through configurable storage providers. Grain state is serialized and restored transparently. But the persisted state is a developer-defined data structure. There is no typed schema for governance, memory, or lineage. The runtime persists data. It does not govern it.

What memory-resident execution provides

Memory-resident execution objects carry their own execution cycle, independent of external calls. They self-evaluate from governed semantic memory on each cycle. They determine whether to act, delegate, wait, or enter dormancy based on their own state. They record every mutation in lineage with governance provenance.

Orleans' virtual actor model, automatic placement, and state persistence could serve as infrastructure for memory-resident objects. But the self-evaluation cycle, governance validation, and autonomous execution must be intrinsic to the object, not dependent on external method calls.

The remaining gap

Orleans made virtual actors practical. The remaining gap is in execution autonomy: objects that carry their own execution cycle, evaluate from governed semantic memory, and act without waiting for calls. That is the difference between a virtual actor and a memory-resident semantic object.

Nick Clark Invented by Nick Clark Founding Investors: Devin Wilkie