Orleans design choices
With the main guiding principle being to enable the simple programming model without sacrificing performance, the Orleans team made some design choices. In this section, we will learn about the key design choices made on the placement of the grain, state isolation, how asynchrony is achieved, and a few more.
Serialization
Serializing and deserializing complex objects is part of any inter-process communication. Mostly, this process is hidden from developers, but its efficiency has a direct impact on the overall performance of the system. The Orleans runtime serializes the data passed in grain requests and response messages. It also serializes persistent state objects. The serialization and deserialization of objects in Orleans are done by an built-in highly optimized serialization subsystem. This is achieved by generating the serialization code at the time of compilation. The two important features of the Orleans serialization framework are as follows:
...