-
Notifications
You must be signed in to change notification settings - Fork 59
Internals: Invocation Acknowledgements
The invocations sent to server entities are acknowledged back to the sending client in different ways, as their server-side execution proceeds. Understanding the meaning of these different acknowledgements is required in order to optimize and properly benefit from their uses.
(source VoltronEntityMessage.java)
-
SENT - Not typically of interest to most applications. This is sent before the message even leaves the client. It represents the point at which the client will determine that this message must be re-sent in the event of a server restart of fail-over. If the client reconnects to the server before SENT, then this message will be sent as a new message, once the reconnect is completed.
-
RECEIVED - Sent once the message has been received by all servers in the stripe and it has been given an agreed-upon order. Once this has been received, it means that a re-sent copy of the message will occur in the same global order, relative to all other messages, as the first copy received.
-
APPLIED - Sent once the message has completed executing on all servers in the stripe. This is also where the return value becomes available.
-
RETIRED - Generally sent immediately after APPLIED, RETIRED means that the client will not re-send this message if a reconnect occurs. The only reason why this would arrive significantly later than the APPLIED is because the active entity used
IEntityMessenger
to explicitly defer message retirement until a later message has completed.