WorkFlow engine scalability with hundred thousand instances RRS feed

  • Question

  • Hello,

    I'm bulding a support helpdesk system using WF4 as the workflow engine. My high level design is as follow:

    1- I use the CTP 1 WF4 state machine
    2- I will use corellation to link one workflow instance per ticket (ID) created in my helpdesk application
    3- I will use bookmark and persitance for storing/waking up each instances according humans (users) interraction. This means I could have hundred thousands of workflow instances persisted (one per ticket) but only a few will be active at the same time for few seconds (while users are changing states of tickets)
    4- My state machine workflow doesn't have any final state since a closed ticket could be reopen by user if necessary

    Does the WF4 runtime, bookmarks and persitence engine will support that design, I mean so many instances count, this count only growing since the instance never complete, etc ?

    Thanks for your feedback.

    Monday, January 24, 2011 10:41 PM


  • Dear GDigrego, it depends a lot on the PersistenceStore itself, and thus on the SQL Server if you use the SQL Instance store. In fact your bottleneck will be this in this area. From my knowledge, this is not a big problem since the persistencestore only stores instance data (and not definition) and is quite small. 

    However having hundreds of thousands of items leads to a big persistence db, and this could be a problem.

    However the key is to plan having a good SQL Server with a good amount of RAM (based on the size of the instance store), and in case of need optimizing by adding some indexes to the persistence store tables themselves could help avoiding problems in this area.



    Tuesday, January 25, 2011 1:27 PM