Share via


WF 3.5 Persistence and Tracking: Two databases or one?

This refers to the previous version of Workflow, but it came up in a recent discussion, so I thought I'd share the relevant points.

When developing a Workflow solution that uses persistence and tracking, you may wonder if you should run the scripts for both schemas on the same database, or create separate databases for both. In general, the recommended method is to use a single database, for performance reasons- since both the persistence and tracking components can share a connection, and can avoid using DTC when the tracking service uses transactions (i.e. SqlTrackingService.IsTransactional is true, which is the default). This is less of a concern when IsTransactional is set to False.

From a management standpoint, two databases might be easier to maintain and troubleshoot- finding the cause of errors, migrating persistence data for active workflows, or running multiple workflow applications with the same persistence store might be less complicated with separate databases.