{"id":4160,"date":"2023-02-25T18:10:14","date_gmt":"2023-02-25T18:10:14","guid":{"rendered":"https:\/\/www.concettolabs.com\/blog\/?p=4160"},"modified":"2025-02-19T11:05:31","modified_gmt":"2025-02-19T11:05:31","slug":"durable-functions-with-net-core-c-and-stateful-serverless","status":"publish","type":"post","link":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/","title":{"rendered":"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless"},"content":{"rendered":"<h2><span class=\"ez-toc-section\" id=\"What_are_Durable_Functions\"><\/span>What are Durable Functions?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Durable Functions are an extension of Azure functions that allow writing stateful functions in a serverless computing environment. Create a reliable stateful workflow by enabling durable functions using Azure Functions. Create a workflow with serverless functions, managing errors, and running activities in a parallel way. The functions allow managing state, checkpoints, and restarts for you. Using this, you can have long-running functions and have stated that remember your workflow.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_the_supported_language_for_Durable_function\"><\/span>What is the supported language for Durable function?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>JavaScript: It support version 2.x of Azure functions. It needs 1.7.0 for the Durable function extension<\/li>\n<li>C#: It comes with both precompiled class libraries and a C# script<\/li>\n<li>Python: It requires the 1.8.5 version for durable functions extension<\/li>\n<li>F#: It has precompiled class libraries and supports F# only if it supports 1.x of Azure function.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Lets_take_an_example_to_understand_better\"><\/span>Let\u2019s take an example to understand better,<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You have to manage a model which divides into different checkpoints. Each point is closer to one step as you move. Let\u2019s say there\u2019s a game where you want to load a bunch of various resources when everything is loaded and ready. It will look like a workflow that enables you to specify something along with the flow. We can observe different architectural patterns with different flows, isn\u2019t it?<\/p>\n<p>If you think this must be expensive, then you\u2019re wrong. The model of payment will work very closely with the Azure function. You can pay for the function if only you use it. So sounds impressive, right? Let\u2019s begin with the article as to how the durable functions work and its necessary explanation.<\/p>\n<p>There are a few concepts that we need to consider before dealing with durable functions. Let\u2019s take a run over those.<\/p>\n<ul>\n<li><strong>Orchestrator Function:<\/strong> We define the workflow and set it up with what happened in it. What activities we need to carry out and what\u2019s done in it.<\/li>\n<li><strong>Activity Function<\/strong>: To work with the Orchestrator function, the activity function is a basic unit to consider. The activity functions can have as many activities it needs to add. You can give descriptive names as per your choice and can represent the flow your way.<\/li>\n<li><strong>Client Functions: If<\/strong> you want to trigger functions, then client functions are the new instance of an Orchestrator. These functions are an entry point from which an instance is created and works on Durable Orchestrator functions.<\/li>\n<\/ul>\n<h4><strong>\u00a0If this still confused you, let&#8217;s get into another form for better understanding\u2026<\/strong><\/h4>\n<p>Taking another example, say order processing where the order process with the following tasks:<\/p>\n<ul>\n<li>Check the inventory<\/li>\n<li>Charge the Customer<\/li>\n<li>Creating a Shipment<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4161 size-full\" title=\".NET Core\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/Net-Core-2.png\" alt=\".NET Core\" width=\"903\" height=\"427\" srcset=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/Net-Core-2.png 903w, https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/Net-Core-2-300x142.png 300w, https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/Net-Core-2-768x363.png 768w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/p>\n<p style=\"text-align: center;\">Source: <a href=\"https:\/\/dev.to\/\" target=\"_blank\" rel=\"nofollow\">dev.to<\/a><\/p>\n<p>Check the above image to see how the client functions and how the order is created. Typically, it\u2019s an HTTP endpoint where we hit from an application. The second thing we can do is start the function of an instance of orchestration by using instance id (a unique reference to specific flow). Later the next thing we carry out is by checking the inventory, charging the customer, and next creating a shipment.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_do_durable_functions_work_with_Net_core_and_stateful_serverless\"><\/span>How do durable functions work with .Net core and stateful serverless?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To move on with technical functions, the first thing that comes is with Orchestration which usually is asynchronous, so we don\u2019t have an idea when does it finish. So, to overcome this issue, we have to pay the running cost for its durable functions and save the state. Here when the orchestration functions work hard, the orchestrator wakes up and re-executes the entire function from start to local state rebuild up.<\/p>\n<p>Don\u2019t worry about re-running during replay as the code will call its function and consult the execution history of the current orchestration. If the function has already executed, it replays that function, and the code continues to run. If this sounds better, then continue until the function code is finished and schedule new async work.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Few_guidelines_to_understand_how_to_learn_the_functions\"><\/span>Few guidelines to understand how to learn the functions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The best way to learn is to build something simple. By using the VS code, we can install and make the process easy to go.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_create_a_project\"><\/span>How to create a project?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Open the command palette and type <strong>COMMAND + SHIFT + P<\/strong><\/p>\n<p>Create a new project by choosing a language. If we select C# while creating a new project, then the list of choices are as follows:<\/p>\n<ul>\n<li>DurableFunctionsOrchestration<\/li>\n<li>HttpTrigger<\/li>\n<li>BlobTrigger<\/li>\n<li>IoTHubTrigger<\/li>\n<li>QueueTrigger<\/li>\n<li>ServiceBusQueueTrigger<\/li>\n<li>ServiceBusTopicTrigger<\/li>\n<li>TimerTrigger<\/li>\n<\/ul>\n<p>Choose Durable Functions Orchestration. Next choose the storage account by selecting the Subscription, storage account, and Resource group. Also, you need to save the state of function somewhere for later recovery.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Check_how_your_project_will_look_alike\"><\/span><strong>Check how your project will look alike:<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n    <div class=\"summary-coding border-white-100 border-radius p-20\">\n\t\t\t<a class=\"copy-text\" data-clipboard-target=\"#code_block_1\" href=\"javascript:void(0);\">\n\t\t\t\t<img decoding=\"async\" width=\"30px\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/copy-code.svg\" alt=\"Copy Text\" title=\"Copy Text\">\n\t\t\t<\/a>\n        <div class=\"border-white-100 white-600-bg border-radius mt-20 p-20\">\n\t\t\t<pre class=\"lang-php s-code-block\" id=\"code_block_1\">\n-I obj\/\n-| bin\/\n-L.gitignore\n&amp;#8211; &lt;name of directory&gt;.csproj\n&amp;#8211; local.settings.json\n&amp;#8211; Orchestration.cs\n<\/pre>\n\t\t<\/div>\n    <\/div>\n    \n<p>Here in the program, there is a method named as FunctionName(\u201corchestration\u201d) and parameter context as IDurableOrchestrationContext. The context calls callActivitivitySync() and names as Orchestration_Hello to pass the string.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Orchestration_Hello\"><\/span>Orchestration_Hello<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Here, the below function is an activity function. The function can do a lot of things and take a database along with HTTP requests.<\/p>\n    <div class=\"summary-coding border-white-100 border-radius p-20\">\n\t\t\t<a class=\"copy-text\" data-clipboard-target=\"#code_block_2\" href=\"javascript:void(0);\">\n\t\t\t\t<img decoding=\"async\" width=\"30px\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/copy-code.svg\" alt=\"Copy Text\" title=\"Copy Text\">\n\t\t\t<\/a>\n        <div class=\"border-white-100 white-600-bg border-radius mt-20 p-20\">\n\t\t\t<pre class=\"lang-php s-code-block\" id=\"code_block_2\">\n[FunctionName(&amp;#8220;Orchestration Hello&amp;#8221;)]\npublic static string SayHello([ActivityTrigger] string name, ILogger log)\n{\nlog.LogInformation($&amp;#8221;Saying hello to {name}.&amp;#8221;);\nreturn $&amp;#8221;Hello {name}!&amp;#8221;;\n}\n<\/pre>\n\t\t<\/div>\n    <\/div>\n    \n<h3><span class=\"ez-toc-section\" id=\"Debugging\"><\/span>Debugging<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Check the debugging flow and how to start up with a durable function from the VS code and its breakpoints.<\/p>\n    <div class=\"summary-coding border-white-100 border-radius p-20\">\n\t\t\t<a class=\"copy-text\" data-clipboard-target=\"#code_block_3\" href=\"javascript:void(0);\">\n\t\t\t\t<img decoding=\"async\" width=\"30px\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/copy-code.svg\" alt=\"Copy Text\" title=\"Copy Text\">\n\t\t\t<\/a>\n        <div class=\"border-white-100 white-600-bg border-radius mt-20 p-20\">\n\t\t\t<pre class=\"lang-php s-code-block\" id=\"code_block_3\">\nHttp Functions:\nOrchestration HttpStart: [GET POST] http:\/\/localhost:7071\/api\/Orchestration_HttpStart\n<\/pre>\n\t\t<\/div>\n    <\/div>\n    \n<p>Until the orchestrator done thoroughly, the function will carry on its activity.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"HttpStart_Response\"><\/span>HttpStart Response<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For HttpStart response, we have to end up producing the point as we have in URL, which follows like below:<\/p>\n    <div class=\"summary-coding border-white-100 border-radius p-20\">\n\t\t\t<a class=\"copy-text\" data-clipboard-target=\"#code_block_4\" href=\"javascript:void(0);\">\n\t\t\t\t<img decoding=\"async\" width=\"30px\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/copy-code.svg\" alt=\"Copy Text\" title=\"Copy Text\">\n\t\t\t<\/a>\n        <div class=\"border-white-100 white-600-bg border-radius mt-20 p-20\">\n\t\t\t<pre class=\"lang-php s-code-block\" id=\"code_block_4\">\n{\n&amp;#8220;name&amp;#8221;: &amp;#8220;Orchestration&amp;#8221;,\n&amp;#8220;instanceld&amp;#8221;:\n&amp;#8220;e1d7e237acb74834a02854050805712e&amp;#8221;,\n&amp;#8220;runtimeStatus&amp;#8221;: &amp;#8220;Completed&amp;#8221;,\n&amp;#8220;input&amp;#8221;: null,\n&amp;#8220;customStatus&amp;#8221;: null,\n&amp;#8220;output&amp;#8221;:[\n&amp;#8220;Hello Tokyo!&amp;#8221;,\n&amp;#8220;Hello Seattle!&amp;#8221;,\n&amp;#8220;Hello London!&amp;#8221;\n],\n&amp;#8220;createdTime&amp;#8221;: &amp;#8220;2020-07-21T11:18:28Z&amp;#8221;,\n&amp;#8220;lastUpdatedTime&amp;#8221;: &amp;#8220;2020-07-21T11:24:25Z&amp;#8221;\n}\n<\/pre>\n\t\t<\/div>\n    <\/div>\n    \n<h3><span class=\"ez-toc-section\" id=\"This_the_code_we_constructed\"><\/span><strong>This the code we constructed:<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n    <div class=\"summary-coding border-white-100 border-radius p-20\">\n\t\t\t<a class=\"copy-text\" data-clipboard-target=\"#code_block_5\" href=\"javascript:void(0);\">\n\t\t\t\t<img decoding=\"async\" width=\"30px\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/copy-code.svg\" alt=\"Copy Text\" title=\"Copy Text\">\n\t\t\t<\/a>\n        <div class=\"border-white-100 white-600-bg border-radius mt-20 p-20\">\n\t\t\t<pre class=\"lang-php s-code-block\" id=\"code_block_5\">\noutputs.Add(await context.CallActivityAsync&lt;string&gt;(&amp;#8220;Orchestration_Hello&amp;#8221;, &amp;#8220;Tokyo&amp;#8221;));\noutputs.Add(await context.CallActivityAsync&lt;string&gt;(&amp;#8220;Orchestration Hello&amp;#8221;, &amp;#8220;Seattle&amp;#8221;));\noutputs.Add(await context.CallActivityAsync&lt;string&gt;(&amp;#8220;Orchestration Hello&amp;#8221;, &amp;#8220;London&amp;#8221;));\n&lt;strong&gt;And this is the output we get:&lt;\/strong&gt;\n&amp;#8220;output&amp;#8221;:[ &amp;#8220;Hello Tokyo!&amp;#8221;,\n&amp;#8220;Hello Seattle!&amp;#8221;,\n&amp;#8220;Hello London&amp;#8221;\n]\n<\/pre>\n\t\t<\/div>\n    <\/div>\n    \n<h2><span class=\"ez-toc-section\" id=\"Wrap_Up\"><\/span>Wrap Up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you\u2019re looking to use durable functions, then you can <a href=\"https:\/\/www.concettolabs.com\/asp-net-core-development\"><strong>hire ASP.Net Core Development<\/strong><\/a> team to create a project. There is a lot more to learn about the durable functions, and we have covered most of them over here.<\/p>\n<p>They are moving on with an announcement done by Microsoft that has bought significant technological trends where Pro ASP.Net Core MVC 2 is one of the tools that has evaluated to improve the productivity and development process. The technologies will be accessible to developers and can use in their current work. These Pro ASP.Net Core MVC 2 tools will work as low barriers to entry-level, and so you can consider it in your future projects. I hope this post was informative and easy to understand.<\/p>\n<div class=\"blog-cta blog-block-8\"><div class=\"custom-flex-col\"><div class=\"content-2\"><h4>Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless<\/h4><p><\/p><a class=\"btn btn-contact mt-20\" href=\"https:\/\/www.concettolabs.com\/inquiry\">Contact Us<\/a><\/div><div class=\"content-1\"><img decoding=\"async\" class=\"img-responsive\" loading=\"lazy\" src=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/themes\/concettolab\/img\/blog-cta-8-img.png\" alt=\"Contact-us\" \/><\/div><\/div><\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#What_are_Durable_Functions\" >What are Durable Functions?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#What_is_the_supported_language_for_Durable_function\" >What is the supported language for Durable function?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Lets_take_an_example_to_understand_better\" >Let\u2019s take an example to understand better,<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#How_do_durable_functions_work_with_Net_core_and_stateful_serverless\" >How do durable functions work with .Net core and stateful serverless?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Few_guidelines_to_understand_how_to_learn_the_functions\" >Few guidelines to understand how to learn the functions<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#How_to_create_a_project\" >How to create a project?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Check_how_your_project_will_look_alike\" >Check how your project will look alike:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Orchestration_Hello\" >Orchestration_Hello<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Debugging\" >Debugging<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#HttpStart_Response\" >HttpStart Response<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#This_the_code_we_constructed\" >This the code we constructed:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#Wrap_Up\" >Wrap Up<\/a><\/li><\/ul><\/nav><\/div>\n","protected":false},"excerpt":{"rendered":"<p>What are Durable Functions? Durable Functions are an extension of Azure functions that allow writing stateful functions in a serverless computing environment. Create a reliable stateful workflow by enabling durable functions using Azure Functions. Create a workflow with serverless functions, managing errors, and running activities in a parallel way. The functions allow managing state, checkpoints, [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":4167,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[186],"tags":[],"class_list":["post-4160","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Guidelines to Durable Functions with .Net Core, C#<\/title>\n<meta name=\"description\" content=\"How durable functions work with .Net core &amp; stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guidelines to Durable Functions with .Net Core, C#\" \/>\n<meta property=\"og:description\" content=\"How durable functions work with .Net core &amp; stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Concetto Labs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/concettolabs\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-25T18:10:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-19T11:05:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tejas Patel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@concettolabs\" \/>\n<meta name=\"twitter:site\" content=\"@concettolabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tejas Patel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\"},\"author\":{\"name\":\"Tejas Patel\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/aa44058e26a37aa7490e92bba403dac8\"},\"headline\":\"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless\",\"datePublished\":\"2023-02-25T18:10:14+00:00\",\"dateModified\":\"2025-02-19T11:05:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\"},\"wordCount\":1175,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg\",\"articleSection\":[\"ASP.NET\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\",\"name\":\"Guidelines to Durable Functions with .Net Core, C#\",\"isPartOf\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg\",\"datePublished\":\"2023-02-25T18:10:14+00:00\",\"dateModified\":\"2025-02-19T11:05:31+00:00\",\"description\":\"How durable functions work with .Net core & stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg\",\"contentUrl\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg\",\"width\":1170,\"height\":540,\"caption\":\"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.concettolabs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#website\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/\",\"name\":\"Blog Concetto Labs\",\"description\":\"Microsoft Power Platform &amp; Mobile App Development Company\",\"publisher\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#organization\"},\"alternateName\":\"Concetto Labs\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.concettolabs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#organization\",\"name\":\"Concetto Labs\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/04\/c-logo.png\",\"contentUrl\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/04\/c-logo.png\",\"width\":150,\"height\":150,\"caption\":\"Concetto Labs\"},\"image\":{\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/concettolabs\",\"https:\/\/x.com\/concettolabs\",\"https:\/\/www.instagram.com\/concettolabs\/\",\"https:\/\/www.linkedin.com\/company\/concetto-labs-private-limited\",\"https:\/\/in.pinterest.com\/concettolabs\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/aa44058e26a37aa7490e92bba403dac8\",\"name\":\"Tejas Patel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/03\/tejas-96x96.jpg\",\"contentUrl\":\"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/03\/tejas-96x96.jpg\",\"caption\":\"Tejas Patel\"},\"description\":\"Tejas Patel is a Co-Founder of Concetto Labs and he have 18+ years of technical experience in building high quality and scalable Web &amp; Mobile Applications.\",\"sameAs\":[\"https:\/\/www.concettolabs.com\",\"https:\/\/www.linkedin.com\/in\/tejas-patel-52051615\/\"],\"url\":\"https:\/\/www.concettolabs.com\/blog\/author\/tejas-patel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Guidelines to Durable Functions with .Net Core, C#","description":"How durable functions work with .Net core & stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.","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:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/","og_locale":"en_US","og_type":"article","og_title":"Guidelines to Durable Functions with .Net Core, C#","og_description":"How durable functions work with .Net core & stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.","og_url":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/","og_site_name":"Blog Concetto Labs","article_publisher":"https:\/\/www.facebook.com\/concettolabs","article_published_time":"2023-02-25T18:10:14+00:00","article_modified_time":"2025-02-19T11:05:31+00:00","og_image":[{"width":1170,"height":540,"url":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg","type":"image\/jpeg"}],"author":"Tejas Patel","twitter_card":"summary_large_image","twitter_creator":"@concettolabs","twitter_site":"@concettolabs","twitter_misc":{"Written by":"Tejas Patel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#article","isPartOf":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/"},"author":{"name":"Tejas Patel","@id":"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/aa44058e26a37aa7490e92bba403dac8"},"headline":"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless","datePublished":"2023-02-25T18:10:14+00:00","dateModified":"2025-02-19T11:05:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/"},"wordCount":1175,"commentCount":0,"publisher":{"@id":"https:\/\/www.concettolabs.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage"},"thumbnailUrl":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg","articleSection":["ASP.NET"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/","url":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/","name":"Guidelines to Durable Functions with .Net Core, C#","isPartOf":{"@id":"https:\/\/www.concettolabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage"},"image":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage"},"thumbnailUrl":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg","datePublished":"2023-02-25T18:10:14+00:00","dateModified":"2025-02-19T11:05:31+00:00","description":"How durable functions work with .Net core & stateful serverless? If you\u2019re looking to use durable functions, then hire ASP.Net Core Development team to create a project.","breadcrumb":{"@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#primaryimage","url":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg","contentUrl":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/07\/1-2.jpg","width":1170,"height":540,"caption":"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless"},{"@type":"BreadcrumbList","@id":"https:\/\/www.concettolabs.com\/blog\/durable-functions-with-net-core-c-and-stateful-serverless\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.concettolabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Guidelines to understand durable functions with .Net Core, C# and Stateful Serverless"}]},{"@type":"WebSite","@id":"https:\/\/www.concettolabs.com\/blog\/#website","url":"https:\/\/www.concettolabs.com\/blog\/","name":"Blog Concetto Labs","description":"Microsoft Power Platform &amp; Mobile App Development Company","publisher":{"@id":"https:\/\/www.concettolabs.com\/blog\/#organization"},"alternateName":"Concetto Labs","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.concettolabs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.concettolabs.com\/blog\/#organization","name":"Concetto Labs","url":"https:\/\/www.concettolabs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.concettolabs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/04\/c-logo.png","contentUrl":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/04\/c-logo.png","width":150,"height":150,"caption":"Concetto Labs"},"image":{"@id":"https:\/\/www.concettolabs.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/concettolabs","https:\/\/x.com\/concettolabs","https:\/\/www.instagram.com\/concettolabs\/","https:\/\/www.linkedin.com\/company\/concetto-labs-private-limited","https:\/\/in.pinterest.com\/concettolabs\/"]},{"@type":"Person","@id":"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/aa44058e26a37aa7490e92bba403dac8","name":"Tejas Patel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.concettolabs.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/03\/tejas-96x96.jpg","contentUrl":"https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2022\/03\/tejas-96x96.jpg","caption":"Tejas Patel"},"description":"Tejas Patel is a Co-Founder of Concetto Labs and he have 18+ years of technical experience in building high quality and scalable Web &amp; Mobile Applications.","sameAs":["https:\/\/www.concettolabs.com","https:\/\/www.linkedin.com\/in\/tejas-patel-52051615\/"],"url":"https:\/\/www.concettolabs.com\/blog\/author\/tejas-patel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/posts\/4160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/comments?post=4160"}],"version-history":[{"count":9,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/posts\/4160\/revisions"}],"predecessor-version":[{"id":16483,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/posts\/4160\/revisions\/16483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/media\/4167"}],"wp:attachment":[{"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/media?parent=4160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/categories?post=4160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.concettolabs.com\/blog\/wp-json\/wp\/v2\/tags?post=4160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}