This allows a consumer of notifications to provide a description of the events it is interested in by specifying constraints on the components of the notification itself. We have developed a simple form of language independent filters that allow the selection of notifications of interest. Notifications are extensible. We support a non-positional, structured exchange of data. This allows event consumers to only process the parts of the notification they are interested in, and allows event producers to extend the schema of their notifications in a conservative way, without affecting current consumers.
Notifications are easy to generate and receive.
To achieve this we use a text based format for transferring notifications between systems. We have interchangeable data formats that allow for the introduction of data without the need to worry about quoting mechanisms. The system may be requested to reformat the data before delivery to simplify the reconstruction of the event by the receiver. Event consumers and producers are loosely bound together. There is no need to have a common interface definition before generating events, or to subscribe to them.