The Web Solutions Platform (Wsp) event system is a general-purpose distributed publish/subscribe event system designed for high performance and low latency. The event system makes it easy to decouple publishers and subscribers. Wsp will dynamically create and
maintain routing tables to transport events from a publisher to all its subscribers.
The WspEvent consists of standard headers, user-defined headers, and a body which is a byte array. The application determines what the body is. It may be a serialized .Net object or it may be data. Wsp simply transports the events from publishers to
Wsp 3.0 has filtered subscriptions to support content-based routing of events. The observer/observable interfaces are used for publishing and subscribing to events.
Wsp 2.1 is currently installed on >13,000 production servers in Microsoft. A real-time monitoring application uses the event system for communications and monitors 100% of the IIS requests. Within 3 seconds, all http requests across all servers and
all datacenters are aggregated, displayed on a console, and able to instigate alerts.
Wsp 3.0 is currently being used as the eventing transport for a new real-time streaming pipeline product for Azure. The new topology design in 3.0 should allow it to support extremely large numbers of nodes.
The latest performance results that I have achieved using a 50 property .Net object on my development machine are (note: a hash code is created on publishing and validated by the subscriber):
* 62,000+ events / second to publish (includes serialization) with no subscriber
* 28,000+ events / second to publish (includes serialization) and subscribe (includes deserialization)
Tags: architecture, BizTalk, distributed systems, ESB, event systems, eventing, Events, messaging, metrics, monitoring, networking, pub/sub, publish/subscribe, remoting, routing, Web Services, webservices, Rx (Reactive Extensions)