High Throughput and Windows Workflow Foundation


Can WWF handle high throughput scenarios where several dozen records are 'actively' being processed in parallel at any one time?

We want to build a workflow process which handles a few thousand records per hour. Each record takes up to a minute to process, because it makes external web service calls.

We are testing Windows Workflow Foundation to do this. But our demo programs show processing of each record appear to be running in sequence not in parallel, when we use parallel activities to process several records at once within one workflow instance.

Should we use multiple workflow instances or parallel activities?

Are there any known patterns for high performance WWF processing?

You should definitely use a new workflow per record. Each workflow only gets one thread to run in, so even with a ParallelActivity they'll still be handled sequentially.

I'm not sure about the performance of Windows Workflow, but from what I have heard about .NET 4 at Tech-Ed was that its Workflow components will be dramatically faster then the ones from .NET 3.0 and 3.5. So if you really need a lot of performance, maybe you should consider waiting for .NET 4.0.

Another option could be to consider BizTalk. But it's pretty expensive.