At-least-once delivery
Arklow uses at-least-once delivery. The same action can reach a destination more than once when an acknowledgement is lost, a lease expires, or a retry is requested. Each delivery is an attempt. Attempts begin at0 and increase when Arklow redelivers the action. The action ID remains the same across attempts.
Build consumers to handle repeated delivery safely. Where the work has an external side effect, use the action ID or a stable business identifier as an idempotency key. The attempt number identifies only one delivery of that work; use action-level identity for idempotency.
Settlement Race Conditions
An acknowledgement, rejection, or deadline extension names both the action and its attempt number. It applies only while that attempt is authoritative. This prevents a delayed acknowledgement from attempt0 from completing an action that has already moved on to attempt 1.
Settlement Verbs
The destination can respond to incoming work in four ways:Source deduplication
Some sources, like those that resemble a Queue, identify work with their provider’s message ID. If for example GCP Pub/Sub or AWS SQS redeliver the same source message after acceptance, the redelivery resolves to the original action.HTTP ingress has no equivalent deduplication. Every accepted POST creates a new action, even when two requests carry identical payloads.