Web services often want to receive messages when events occur in other services and applications. A mechanism for registering interest is needed because the set of Web services interested in receiving such messages is often unknown in advance or will change over time. This section defines a protocol for one Web service (called "subscriber") to register interest (called "subscription") with another Web service (called "event source") in receiving messages about events (called "notifications" or "event messages"). The subscriber may manage the subscription by interacting with a Web service (called "subscription manager") designated by the event source.
To improve robustness, a subscription may be leased by an event source to a subscriber and the subscription expires over time. The subscription manager provides the ability for the subscriber to renew or cancel the subscription before it expires.
There are many mechanisms by which event sources may deliver events to event sinks. This specification provides an extensible way for subscribers to identify the delivery mechanism they prefer. While asynchronous pushed delivery is defined here, the intent is that there should be no limitation or restriction on the delivery mechanisms capable of being supported by this specification.
Key concepts of eventing:
- Delivery Mode - The mechanism by which event messages are delivered from the source to the sink.
- Event Sink - A Web service that receives notifications.
- Notification - A one-way message sent to indicate that an event has occurred.
- Push Mode - A delivery mechanism where the source sends event messages to the sink as individual, unsolicited, asynchronous SOAP messages.
- Subscriber - A Web service that sends requests to create, renew, and/or delete subscriptions.
- Subscription Manager - A Web service that accepts requests to manage get the status of, renew, and/or delete subscriptions on behalf of an event source.
New in Version 4.0: Event sources feature has been completely removed. Event Source was a web service used to send notifications and accepts requests to create subscriptions. Event sources delivered events to event sinks. This functionality is now provided by the built-in Qpid broker. Users can use this component to receive and publish events.
As WSO2 ESB comes with a built-in eventing implementation and a lightweight event broker based on Apache Qpid, it can be used as an event broker. You can use the ESB management console to create event topics and clients can subscribe to those topics by sending WS-Eventing subscription requests. The management console also allows creating static subscription.
WSO2 ESB is also equipped with an Event Mediator which can be used to publish messages to predefined topics. With this mediator it is possible for a sequence or a proxy service to directly publish a received request or a response to a topic as an event.
See more information about WS-eventing in WS-Eventing Specification.