Those are my random impressions:
- You probably do want to test your work flow. In the same way you want to have an integration test for the system.
- The sequence work flow seems to be a very heavy weight approach to just orchestrating actions in the application.
- I wonder what the perf implications of creating a workflow here would be. My gut feeling is that this is not good, but I don't really have data for that.
- There is probably an issue here with the WF being run in async, I am not sure where it is getting its threads, but if it is from the thread pool, then it is consuming request handling threads, which can kill a site.
As an aside, here is the checkout workflow:
And here is how I would write this:
ValidateOrder() AuthorizePayment() order.Status = OrderStatus.Verified SaveOrder()
Much easier, I think :-) And even more flexible.