Problem: how to provide a distributed, scalable and disaster resistant pub/sub service with WCF.
Details:
Note that this approach is being considered in addition to messaging/middleware solutions such as Tibco EMS.
I've been looking into WCF, particularly how it may be used to offer pub/sub. On this subject this article is very good: WCF pub-sub.
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.
So, I think there are a couple of solutions to the problem:
- Store subscriber details in a distributed cache (see questions: q1 and q2).
- Store subscriber details in a database/central file system.
Can anyone think of any other solutions (i.e. I've not missed some fantastic magical feature of WCF?) Any comments appreciated.