BizTalk vs. Windows Workflow Foundation (WF)

I have seen the questions about the differences between BizTalk and WF and "when to use what" have been raised multiple time.  Based on my experiences with both technologies and my readings (some listed below), I summarized the usage scenario as follows:

- Use WF for application hosted workflow and human workflow

- Use BizTalk for server-hosted system workflow, BAM, B2B and EAI (enterprise application integration).

 

In case you're interested to know why? Not surprisingly, this is very much driven by the product features.

For WF:

  • WF is hosted inside application. 
  • Also, WF supports state machine workflows and dynamic update on workflows, which make it ideal for impelmenting human workflows or other dynamic workflows.

 

For BizTalk:

  • BizTalk workflow is hosted inside BizTalk process and depends on BizTalk server runtime.
  • BizTalk has extensive line of adapters and pipeline components that are often a must-have for cross-platform Enterprise Application Integration (EAI).
  • BizTalk provides tools for working with trading partners such as Business Activity Services (BAS), accelerators for industry standards (RosettaNet, SWIFT etc.). These features make BizTalk more suitable for B2B scenarios.
  • Other features that BizTalk has but WF doesn't (or has to be implemented by developer)
    •     Tracking: natively integrated wtih the Business Activity Monitoring (BAM)
    •     Transaction: supports both atomic transaction and long-running transaction
    •     Extensive set of tools for admin, management, migration and scaling

Some other posts related to this topic I found quite helpful and highly recommend are:

Microsoft's offical comparison on these two technologies at MSDN Developer Center.
Brian Loesgen's blog https://blogs.ineta.org/bloesgen/archive/2005/10/09/56481.aspx
Lamont Harrington's blog https://blogs.msdn.com/lamonth/archive/2005/09/14/466222.aspx
Darren Jefford's blog https://blogs.msdn.com/darrenj/archive/2005/09/15/467838.aspx