SqlWorkflowPersistenceService, the out-of-box persistence service in WF, provides a mechanism to lock workflow instances. Instance locking is required if you want to run a workflow in different hosts and ensure that it is loaded in one and only one host at a given time. While answering one of the questions http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371851&SiteID=1  on WF forum, I created a simple workflow which is accessed by 3 hosts. I have uploaded the sample here for those who are interested. Take a look at it and let me know if you have any questions!