Book Image

Distributed .NET with Microsoft Orleans

By : Bhupesh Guptha Muthiyalu, Suneel Kumar Kunani
Book Image

Distributed .NET with Microsoft Orleans

By: Bhupesh Guptha Muthiyalu, Suneel Kumar Kunani

Overview of this book

Building distributed applications in this modern era can be a tedious task as customers expect high availability, high performance, and improved resilience. With the help of this book, you'll discover how you can harness the power of Microsoft Orleans to build impressive distributed applications. Distributed .NET with Microsoft Orleans will demonstrate how to leverage Orleans to build highly scalable distributed applications step by step in the least possible time and with minimum effort. You'll explore some of the key concepts of Microsoft Orleans, including the Orleans programming model, runtime, virtual actors, hosting, and deployment. As you advance, you'll become well-versed with important Orleans assets such as grains, silos, timers, and persistence. Throughout the book, you'll create a distributed application by adding key components to the application as you progress through each chapter and explore them in detail. By the end of this book, you'll have developed the confidence and skills required to build distributed applications using Microsoft Orleans and deploy them in Microsoft Azure.
Table of Contents (17 chapters)
1
Section 1 - Distributed Applications Architecture
4
Section 2 - Working with Microsoft Orleans
10
Section 3 - Building Patterns in Orleans
13
Section 4 - Hosting and Deploying Orleans Applications to Azure

Understanding and implementing timers

The HotelGrain class that we have created in the book so far has been getting messages from external clients for welcome greetings or check-in as shown in the following diagram. Ultimately, all the HotelGrain classes have responded to an outside request.

Figure 6.1 – HotelGrain responding to messages from external clients

But what if the grain needs to do some internal processing on a periodic basis. Timers provided by Orleans help in scheduling and creating periodic grain behavior without spanning multiple instances of the grain. Timers are asynchronous, single-threaded, and re-entrant so that a function can fire while the grain is awaiting. A grain can register multiple timers and can also cancel them when it is done with them. Timers are valid for the duration of the grain's activation, so they continue to fire until the grain is deactivated.

Grain.RegisterTimer shown here is the method to register...