Implementation details overview
Orleans Lifecycle
Some Orleans behaviors are sufficiently complex that they need ordered startup and shutdown. To address this, a general component lifecycle pattern has been introduced.
Messaging delivery guarantees
Orleans messaging delivery guarantees are at-most-once, by default. Optionally, if configured to do retries upon timeout, Orleans provides at-least-once delivery instead.
Scheduler
Orleans Scheduler is a component within the Orleans runtime responsible for executing application code and parts of the runtime code to ensure the single-threaded execution semantics.
Cluster management
Orleans provides cluster management via a built-in membership protocol, which we sometimes refer to as Silo Membership. The goal of this protocol is for all silos (Orleans servers) to agree on the set of currently alive silos, detect failed silos, and allow new silos to join the cluster.
Streams implementation
This section provides a high-level overview of Orleans Stream implementation. It describes concepts and details that are not visible on the application level.
Load balancing
Load balancing, in a broad sense, is one of the pillars of the Orleans runtime.
Unit testing
This section shows how to unit test your grains to make sure they behave correctly.