Enum TodoQueue.DuplicationHandlingMode
Defines how duplicate todo submissions are handled by the queue. When a client sends a Todo into server, a server may accept the todo but client may not get the confirmation message, in which case client may re-submit the same todo (as identified by the SysID GDID) more than once. This leads to duplication of work and may be unacceptable for some applications (e.g. financial double-posting). Duplication detection will respond with OK acknowledgment for the Todo that have already been accepted.
Namespace: Azos.Sky.Workers.Server.Queue
Assembly: Azos.Sky.dll
Syntax
public enum DuplicationHandlingMode
Fields
Name | Description |
---|---|
HostAccurateDetection | The server is going to check whether a Todo with the same SysID was already submitted and is in the queue. This detection mode is usually done in-store and provides the best host-level protection but takes more time to execute a store check request. This mode does not detect todos which have executed already and not in either queue or recent buffer |
HostFastDetection | This is the default mode. The server is going to check whether a Todo with the same SysID was already submitted recently. The recency (time window size) is defined by the server configuration and is usually configured to represent a typical timeouts (60 sec = 3 typical 20 sec Glue calls) for re-submission. This detection mode is usually done in-RAM and provides the best balance between performance and protection guarantees. Note: this mode DOES NOT detect a case when this server was down and traffic was routed to a different server in a hostset. For more protection use HostsetDetection mode |
HostsetDetection | The server will check itself then others in a host set for possible Todo resubmission. This mode provides the best protection at the expense of performance as cross-checking introduces extra network traffic. |
NotDetected | The server is not checking for duplicate Todo instance submission. This is the fastest mode but leads to possible re-submission of the same Todo instance |