Note that there are some explanatory texts on larger screens.

plurals
  1. POWCF Pub/Sub with subscriber caching
    text
    copied!<p><strong>Problem:</strong> how to provide a distributed, scalable and disaster resistant pub/sub service with WCF.</p> <p><strong>Details:</strong></p> <p><em>Note that this approach is being considered in addition to messaging/middleware solutions such as Tibco EMS.</em></p> <p>I've been looking into WCF, particularly how it may be used to offer pub/sub. On this subject this article is very good: <a href="http://msdn.microsoft.com/en-gb/magazine/cc163537.aspx" rel="nofollow noreferrer">WCF pub-sub</a>.</p> <p>In the article the author attempts to tackle the problem of having multiple publishers (as one would have with a service layer scaled across several boxes). The problem being that if client A registers with Publisher A but Publisher B wishes to publish an event, then publisher B won't know about client A. i.e. no one told publisher B that client A wanted to be notified about events. The author suggests a pub/sub service as a solution. The pub/sub service would centrally store subscriptions. However, if I wanted to make the pub/sub service disaster resistant by having a secondary/dual pub/sub service then I have the same original problem.</p> <p>So, I think there are a couple of solutions to the problem:</p> <ol> <li>Store subscriber details in a distributed cache (see questions: <a href="https://stackoverflow.com/questions/125697/wcf-application-caching-implementation">q1</a> and <a href="https://stackoverflow.com/questions/21870/systemwebcaching-vs-enterprise-library-caching-block">q2</a>).</li> <li>Store subscriber details in a database/central file system.</li> </ol> <p>Can anyone think of any other solutions (i.e. I've not missed some fantastic magical feature of WCF?) Any comments appreciated.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload