Guarantees » History » Version 3

J. Moringen, 04/28/2011 05:52 PM
added discussion of listener/informer guarantees

1 1 J. Moringen
h1. Guarantees
2 1 J. Moringen
3 1 J. Moringen
h2. Quality of Service
4 1 J. Moringen
5 3 J. Moringen
For listeners, any guarantee applies to the stream of events received from the bus (not to the entire processing of a given event). In particular, it is possibly that the effective guarantees are weaker than those specified for the listener (if the informer has weaker guarantees than the listener).
6 3 J. Moringen
7 3 J. Moringen
For informer, any guarantee applies to the submitting of events to the bus. Guarantees at the receiving end may effectively be weakened depending on the listener configuration.
8 3 J. Moringen
9 1 J. Moringen
_In the following lists of guarantees, subsequent items include all guarantees given by preceding items._
10 1 J. Moringen
11 1 J. Moringen
h3. Ordering
12 1 J. Moringen
13 1 J. Moringen
# Unordered: Events are delivered in (potentially) arbitrary order.
14 1 J. Moringen
# Ordered: Every listener receives the events of one informer in the order the informer sent the events. No guarantees are given for events of multiple informers.
15 1 J. Moringen
16 1 J. Moringen
Independent of the requested ordering, no relation is guaranteed for events arriving at multiple listeners.
17 1 J. Moringen
18 1 J. Moringen
h3. Reliability
19 1 J. Moringen
20 1 J. Moringen
# Unreliable: Events may be dropped and not be visible to a listener.
21 1 J. Moringen
# Reliable: Messages are guaranteed to be delivered. Otherwise an error is raised.
22 1 J. Moringen
23 1 J. Moringen
h2. Threading
24 2 J. Moringen
25 2 J. Moringen
* Informer is thread-safe
26 2 J. Moringen
* Listener is thread-safe. This implies:
27 2 J. Moringen
** Adding/Removing filters from arbitrary threads does 
28 2 J. Moringen
** Add/Remove handlers