State machine workflow to difficult for you?

Recently Anko Duizer started a discussion inside Class-A about Windows Workflow Foundation, specifically about state machine workflow vs. sequential workflow. One point of discussion was why in (almost) every presentation out there, the sequential workflow is being demonstrated.

Sequential workflows are pretty easy to understand and probably most used in design documents. However, I’ve implemented Workflow Foundation on several projects and have always used a state machine workflow, simply because it was the best possible solution to the problem at hand. And although I never actually thought about it, the discussion internally made me wonder myself if sequential workflow has any use. I’ve used them inside the different states of my state machine, but never have I used a sequential workflow on its own.

Is this because they don’t represent anything but simple if statements in your code? And everything that spans over time is implemented using a state machine? Are state machines so hard to explain to people, or do the presenters just don’t get them? Anko also proves in his article that the workflow of the expense demo, published on MSDN, is much easier to draw, implement and query the state with a state machine workflow.

I’m curious if people have implemented sequential workflows in their applications and could explain the why and how? Leave a comment here or on Anko’s weblog.