Let’s say you have a long running .NET workflow and for whatever reason you can’t use SQL Server for persistence.
As an option you can persist your workflow and instance data to PostgreSQL or even XML. PostgreSQL is great because it’s fully ACID compliant and is free.
How do I persist a .NET workflow to PostgreSQL?
- Implement the
- Initialize a Workflow application or Workflow Host with the PostgresInstanceStore implementation.
- Invoke persistance using any of the implicit .NET workflow persistance points.
Microsoft having open sourced their code, an implementation of the
SqlWorkflowInstanceStore can be viewed on the Microsoft reference source site.
The XMLInstanceStore example is simple and has fewer tables or relational workflow data to persist compared to the SqlWorkflowInstanceStore implementation which makes the port we provide here slightly less detailed.
Going forward however the github repo provided here will copy the patterns employed in the SqlWorklfowInstanceStore. For example, the SqlWorkflowInstanceStore uses an Asynchronous Programming Model/APM when invoking Instance Persistance Commands like
SaveWorkflowCommand. The XMLInstanceStore example executes commands synchronously only.
Given that you simply want a sample on getting persistance to work you can definitely check this out and maybe even contribute.