This is a .NET specific continuation of my article Workflow Engine is a tool for you. If you do not know what Workflow Engine is or why you would use one, please refer to the previous article. I will repeat only the definitions here:

An algorithm that should be reliably executed is called a Workflow. A single step or statement of a workflow is called an Activity. A standalone application or an embedded framework responsible for reliably executing workflows is called a Workflow Engine.

Workflow Engine ensures the reliability of workflows by persisting their state and automatically re-executing the last…


Key Points:

  1. Workflow Engine is a necessary tool that is used to create reliable algorithms
  2. Using wrong tools to achieve reliability leads to severe compromise of code readability

Famously, “when all you have is a hammer, everything looks like a nail”. It is therefore a duty of a good software engineer to extend the repertoire of tools he or she can use to solve different kinds of problems. As the title suggests, in this article I’m going to argue that Workflow Engine is a tool you should at least know about.

Instead of starting with a tool, let’s start with a problem…


Are you watching closely?

The first time I saw a type provider I did not actually get what all the fuss was about. I mean, I have used code generation before, and while type providers seemed a little bit more convenient, I was not immediately sold on them.

But then I found different type providers, which changed my mind. Using them was like using dark magic (I’ll give one example shortly). And although I was excited, something wasn’t right. I could not for the life of me conceive of how they could do what they do. I knew I had…

Max Fedotov

Software engineer at Kaspersky Lab, Moscow. Opinions are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store