{"id":3393,"date":"2021-08-10T22:55:37","date_gmt":"2021-08-10T17:25:37","guid":{"rendered":"https:\/\/lgconsultancy.wpcomstaging.com\/?p=3393"},"modified":"2022-08-02T09:50:07","modified_gmt":"2022-08-02T09:50:07","slug":"microsoft-orleans","status":"publish","type":"post","link":"https:\/\/lng-consultancy.com\/staging\/5474\/microsoft-orleans\/","title":{"rendered":"Microsoft Orleans"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\" id=\"block-17272141-a47f-4da8-a8d4-d4b830412bd7\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/08\/Orleans.png?resize=276%2C166&ssl=1\" alt=\"This image has an empty alt attribute; its file name is Orleans.png\" width=\"276\" height=\"166\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Before We understand Orleans We need to take a look at normal Scalable Applications<\/strong>. <strong>Below is the Diagram that shows<\/strong> <strong>it<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Scalability refers to an application\u2019s capacity or ability to grow with demand without degrading performance or disrupting the user experience. When you have a scalable application, you can add more resources when needed, which improves your ability to serve customer requests under heavy load, as well as reduce downtime due to server crashes.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/08\/image.png?ssl=1\" alt=\"\" class=\"wp-image-3398\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Problem in above Diagram<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In Microsoft We have services which end up being very large and they often need some kind of way to coordinate with each other without putting too much pressure on lets say a database and without having lot of concurrency issues. Statelessness is required for scaling. Database also adds latency<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Statelessness means that every HTTP request happens in complete isolation. When the client makes an HTTP request, it includes all information necessary for the server to fulfill that request. The server never relies on information from previous requests.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As Orleans are based on Actor Model. \u00a0but unlike actors in more traditional actor systems (Erlang, Akka), Orleans grains are\u00a0<strong>virtual actors<\/strong>. The biggest difference is that physical instantiations of grains are completely abstracted away and are automatically managed by the Orleans runtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Small glimpse of Actor Model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><br>A programming model for distributed systems and parallel processing<\/strong>, wherein the \u201cactor\u201d is the primary element of computation similar to an \u201cobject\u201d in object-oriented programming (OOP). An actor receives a message and generates output as a self-contained concurrent operation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" height=\"368\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/09\/image-2-1024x368.png?resize=1024%2C368&ssl=1\" alt=\"\" class=\"wp-image-3534\"\/><figcaption>Actor Model Glance<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/09\/image-4.png?ssl=1\" alt=\"\" class=\"wp-image-3538\"\/><figcaption>Actor Life Cycle<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What is Orleans<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Orleans is a .NET Core, cross-platform framework for building robust, scalable distributed applications. It was created by Microsoft Research and is based on an actor model which provides an innovative approach to simplify the design of highly performant, distributed systems for the cloud. It has a programming model that solves much of the complexity associated with architecting scalable, highly-parallel, distributed systems<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is how a typical Orleans Application looks like. Orleans minimizes latency problems as well my maintaining its own state. So Database calls are not required every time rather once time<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/09\/image.png?resize=759%2C378&ssl=1\" alt=\"\" class=\"wp-image-3529\" width=\"759\" height=\"378\"\/><figcaption>Basic Architecture of Orleans Application<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Main Features<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Framework of distributed applications<\/li><li>Build and operate scalable, fault tolerant applications that are composed of distributed objects, called grains<\/li><li>Model Your application using grains<\/li><li>Objects have id, behavior and state<\/li><li>Build on Dot net<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/08\/image-1.png?ssl=1\" alt=\"\" class=\"wp-image-3401\"\/><figcaption>Inside Orleans<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Terms associated with Orleans<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Grains<\/strong> \u2014 The \u201cvirtual actors\u201d and\/or \u201cprimitives\u201d that are described in the actor model definition above. Grains are the objects that actually contain your logic that is to be distributed. Each individual grain is guaranteed to function in a single-threaded execution model as to greatly simplify the programming, and avoid race conditions. The grains are written in an asynchronous manner, and are intended for very fast running operations .<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Silos<\/strong> \u2014 The area where your \u201cgrains\u201d are kept. A silo can contain many grain types, as well as many instantiations of those types.<\/li><li><strong>Clusters<\/strong> \u2014 A collection of silos. This allows for the \u201cscale out\u201d portion of Orleans. If more or less resources are needed, you can simply register or kill silos on your cluster. Scaling made easy!<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">More About Grain<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dotnet.github.io\/orleans\/images\/grain_formulation.svg\" alt=\"A grain is composed of a stable identity, behavior, and state\"\/><figcaption>Grain Explained<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Grains are the key primitives of the Orleans programming model. Grains are the building blocks of an Orleans application, they are microscopic units of isolation, distribution, and persistence. Grains are objects that represent application entities. Just like in the Object Oriented Programming, a grain encapsulates state of an entity and encodes its behaviour in the code logic. Grains can hold references to each other and interact by invoking each other\u2019s methods exposed via interfaces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Orleans goal is to greatly simplify building a scalable application and eliminate most of the concurrency challenges<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>By not sharing data between grains instances except via message passing.<\/li><li>By providing the single-threaded execution guarantee to each individual grain.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A typical grain encapsulates state and behavior of a single entity (for example a specific user or a device or a session).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"grain-identity\"><a href=\"http:\/\/sergeybykov.github.io\/orleans\/Documentation\/core_concepts\/index.html#grain-identity\"><\/a><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"grain-identity\">Grain Identity<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An individual grain is a uniquely addressable instance of a grain type (class). Each grain has a unique identity, also referred to as a grain key, within its type. Grain identity within its type can be long integer, GUID,  string, or combination of a long+string or GUID+string.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"accessing-a-grain\"><a href=\"http:\/\/sergeybykov.github.io\/orleans\/Documentation\/core_concepts\/index.html#accessing-a-grain\"><\/a>Accessing a Grain<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A grain class implements one or more grain interfaces, formal code contracts for interacting with grains of that type. To invoke a grain, a caller needs to know the grain interface that the grain class implements that includes the method that the caller wants to call and the unique identity (key) of the target grain. For example, here\u2019s how a user profile grain can be called to update user\u2019s address if email is used as a user identity.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var user = grainFactory.GetGrain<IUserProfile>(userEmail);\nawait user.UpdateAddress(newAddress);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A call to GetGrain is an inexpensive local operation of constructing a grain reference with an embedded identity and type of the target grain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"behind-the-scenes---grain-lifecycle\"><\/h3>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating Orlean Application<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An Orleans application consists of a few separate pieces, generally all as separate projects:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Grain interfaces<\/li><li>Grain implementations<\/li><li>Orleans Silo host<\/li><li>Orleans Client<\/li><\/ul>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>GrainInterfaces \/ Grains csproj<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Microsoft.Orleans.Core.Abstractions\nMicrosoft.Orleans.OrleansCodeGenerator.Build<\/code><\/pre>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>Client csproj<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Microsoft.Extensions.Logging.Console\nMicrosoft.Orleans.Client\n<\/code><\/pre>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>Server csproj<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Microsoft.Extensions.Logging.Console\nMicrosoft.Orleans.Server\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Grain State and Persistence<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The \u201cOrleans\u201d runtime provides a build in support for persistence of the state of a grain (actor). That means, developer can define a part of the grain to be persistable.<br>This is very important, because internally \u201cOrleans\u201d does not offer common object oriented command \u201cnew\u201d, which can be used to create the grain.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Goals<\/h2>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>Allow different grain types to use different types of storage providers (e.g., one uses Azure table, and one uses an ADO.NET one) or the same type of storage provider but with different configurations (e.g., both use Azure table, but one uses storage account #1 and one uses storage account #2)<\/li><li>Allow configuration of a storage provider instance to be swapped (e.g., Dev-Test-Prod) with just config file changes, and no code changes required.<\/li><li>Provide a framework to allow additional storage providers to be written later, either by the Orleans team or others.<\/li><li>Provide a minimal set of production-grade storage providers<\/li><li>Storage providers have complete control over how they store grain state data in persistent backing store.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/lgconsultancy.wpcomstaging.com\/wp-content\/uploads\/2021\/08\/image-2.png?ssl=1\" alt=\"\" class=\"wp-image-3407\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>[StorageProvider(ProviderName=\"store1\")]\npublic class MyGrain<MyGrainState> ...\n{\n  ...\n}\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\n<OrleansConfiguration xmlns=\"urn:orleans\">\n    <Globals>\n    <StorageProviders>\n        <Provider Type=\"Orleans.Storage.MemoryStorage\" Name=\"DevStore\" \/>\n        <Provider Type=\"Orleans.Storage.AzureTableStorage\" Name=\"store1\"\n            DataConnectionString=\"DefaultEndpointsProtocol=https;AccountName=data1;AccountKey=SOMETHING1\" \/>\n        <Provider Type=\"Orleans.Storage.AzureBlobStorage\" Name=\"store2\"\n            DataConnectionString=\"DefaultEndpointsProtocol=https;AccountName=data2;AccountKey=SOMETHING2\"  \/>\n    <\/StorageProviders>\n\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>For more information : https:\/\/github.com\/L-n-G-Consultancy\/orleans-sample-code<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Before We understand Orleans We need to take a look at normal Scalable Applications. Below is the Diagram that shows it Scalability refers to an application\u2019s capacity or ability to grow with demand without degrading performance or disrupting the user experience. When you have a scalable application, you can add more resources when needed, which [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":7291,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32],"tags":[],"class_list":["post-3393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Microsoft Orleans<\/title>\n<meta name=\"description\" content=\"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lng-consultancy.com\/microsoft-orleans\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft Orleans\" \/>\n<meta property=\"og:description\" content=\"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lng-consultancy.com\/microsoft-orleans\/\" \/>\n<meta property=\"og:site_name\" content=\"L&amp;G Consultancy\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-10T17:25:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-02T09:50:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lng-consultancy.com\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Palak Mahajan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Palak Mahajan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/\"},\"author\":{\"name\":\"Palak Mahajan\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/f1bccf0cb7edc87b9207f6ca92f36860\"},\"headline\":\"Microsoft Orleans\",\"datePublished\":\"2021-08-10T17:25:37+00:00\",\"dateModified\":\"2022-08-02T09:50:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/\"},\"wordCount\":1045,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/\",\"url\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/\",\"name\":\"Microsoft Orleans\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1\",\"datePublished\":\"2021-08-10T17:25:37+00:00\",\"dateModified\":\"2022-08-02T09:50:07+00:00\",\"author\":{\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/f1bccf0cb7edc87b9207f6ca92f36860\"},\"description\":\"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/lng-consultancy.com\\\/staging\\\/5474\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/lng-consultancy.com\\\/microsoft-orleans\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/lng-consultancy.com\\\/staging\\\/5474\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Microsoft Orleans\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#website\",\"url\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/\",\"name\":\"L&amp;G Consultancy\",\"description\":\"Your Technology Partner\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/sh024.global.temp.domains\\\/~landgcon\\\/#\\\/schema\\\/person\\\/f1bccf0cb7edc87b9207f6ca92f36860\",\"name\":\"Palak Mahajan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g\",\"caption\":\"Palak Mahajan\"},\"url\":\"https:\\\/\\\/lng-consultancy.com\\\/staging\\\/5474\\\/author\\\/palakmahajan6a0dcbea0f\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microsoft Orleans","description":"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lng-consultancy.com\/microsoft-orleans\/","og_locale":"en_US","og_type":"article","og_title":"Microsoft Orleans","og_description":"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud","og_url":"https:\/\/lng-consultancy.com\/microsoft-orleans\/","og_site_name":"L&amp;G Consultancy","article_published_time":"2021-08-10T17:25:37+00:00","article_modified_time":"2022-08-02T09:50:07+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/lng-consultancy.com\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg","type":"image\/jpeg"}],"author":"Palak Mahajan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Palak Mahajan","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#article","isPartOf":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/"},"author":{"name":"Palak Mahajan","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/f1bccf0cb7edc87b9207f6ca92f36860"},"headline":"Microsoft Orleans","datePublished":"2021-08-10T17:25:37+00:00","dateModified":"2022-08-02T09:50:07+00:00","mainEntityOfPage":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/"},"wordCount":1045,"commentCount":0,"image":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1","articleSection":["Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lng-consultancy.com\/microsoft-orleans\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/","url":"https:\/\/lng-consultancy.com\/microsoft-orleans\/","name":"Microsoft Orleans","isPartOf":{"@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#primaryimage"},"image":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1","datePublished":"2021-08-10T17:25:37+00:00","dateModified":"2022-08-02T09:50:07+00:00","author":{"@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/f1bccf0cb7edc87b9207f6ca92f36860"},"description":"Orleans builds on developer productivity of .NET and carries it to the world of distributed applications, for example cloud services. Orleans scales from single on-premises server to globally distributed, highly-available applications in the cloud","breadcrumb":{"@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lng-consultancy.com\/microsoft-orleans\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#primaryimage","url":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1","contentUrl":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/lng-consultancy.com\/microsoft-orleans\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lng-consultancy.com\/staging\/5474\/"},{"@type":"ListItem","position":2,"name":"Microsoft Orleans"}]},{"@type":"WebSite","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#website","url":"http:\/\/sh024.global.temp.domains\/~landgcon\/","name":"L&amp;G Consultancy","description":"Your Technology Partner","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/sh024.global.temp.domains\/~landgcon\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/sh024.global.temp.domains\/~landgcon\/#\/schema\/person\/f1bccf0cb7edc87b9207f6ca92f36860","name":"Palak Mahajan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8aa3043b32e3c1b9f1fdc79cc2703fb3a746ff2cfdd0fe27ed527f609029134a?s=96&d=mm&r=g","caption":"Palak Mahajan"},"url":"https:\/\/lng-consultancy.com\/staging\/5474\/author\/palakmahajan6a0dcbea0f\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/lng-consultancy.com\/staging\/5474\/wp-content\/uploads\/2021\/08\/Untitled-design-20.jpg?fit=1200%2C628&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/comments?post=3393"}],"version-history":[{"count":1,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3393\/revisions"}],"predecessor-version":[{"id":7292,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/posts\/3393\/revisions\/7292"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/media\/7291"}],"wp:attachment":[{"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/media?parent=3393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/categories?post=3393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lng-consultancy.com\/staging\/5474\/wp-json\/wp\/v2\/tags?post=3393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}