Unexceptional non-blocking task-based flow control in .NET

This article shows in a simple way the foundation of libraries like DurableTask and its descendant Azure Durable Functions. It starts with the history of exception based flow control and ends by showing how Task-based API can be used to provide a similar interruptible flow with no abusive exception usage. Dark ages of exception-driven programming … Continue reading Unexceptional non-blocking task-based flow control in .NET

Async pump for better throughput in Azure

This post is followed up by https://blog.scooletz.com/2017/02/20/async-programming-model TL;DR Introducing async-await has changed a lot. Now, with some compiler's help we're able to squeeze out more throughput from our machines, which may lower costs and increase throughput. In this blog post we'll push the boundaries even further by questioning the need of immediate awaiting on a … Continue reading Async pump for better throughput in Azure

Rise of the IAsyncStateMachines

Whenever you use async/await pair, the compiler performs a lot of work creating a class that handles the coordination of code execution. The created (and instantiated) class implements an interface called IAsyncStateMachine and captures all the needed context to move on with the work. Effectively, any async method using await will generate such an object. … Continue reading Rise of the IAsyncStateMachines