Notification for Operations

Listeners are invoked for client-initiated operations only after the client operation succeeds on the server. Listener invocation on the client indicates that the server has the same data as the client.

If a client operation fails on the server, the operation is rolled back, assuming that no other thread has modified the data in the intervening period. Rollback may not be possible in cases where the entry has been evicted by LRU or expiration during this period. Thus when an exception is received from the server for an operation, local changes may not have been rolled back.

Event Notification Sequence

Events received on the clients that originated on the server invoke the subscription for the event as seen by the server. Events originating on the client invoke the subscription as seen by the client.

For example, a client that receives a create and an update from the server fires a create event and an update event because that is how the server saw it. A cacheless client that does two consecutive put operations has two afterCreate events invoked on the originating client because the client does not have any history about the first put, since it is cacheless.

For the same sequence, the server sees an afterCreate and an afterUpdate event, and a remote client receiving the event sees an afterCreate followed by an afterUpdate event. A client that caches locally sees an afterCreate and an afterUpdate for the same scenario (as will the server and remote clients).