At-Least-Once Delivery
Livraison au moins une fois
La livraison au moins une fois tente d'éviter qu'un message ne soit perdu, mais le même message peut arriver plus d'une fois. Le consommateur doit gérer les répétitions en toute sécurité.
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeevt_784deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeJOBUn autre exemple
Un worker sauvegarde le reçu `evt-42` mais s'arrête avant de supprimer le message Amazon SQS. SQS livre plus tard le même message à nouveau. Le worker suivant voit l'ID de l'événement sauvegardé et retourne le reçu existant au lieu d'en créer un second.
Parties principales
- 01ID de message stable
- 02Tentative de livraison
- 03Résultat produit par le worker
- 04Accusé de réception ou suppression
- 05Chemin de nouvelle livraison
- 06Enregistrement en double
Utilisez-le lorsque
Utilisez cette règle lorsqu'il est pire de perdre un emploi que de le traiter deux fois. Donnez à chaque message un identifiant stable. Un message répété ne doit pas facturer, envoyer un e-mail ou sauvegarder deux fois.
Ne l'utilisez pas lorsque
La livraison ne signifie pas que le travail a réussi. Ne promettez pas exactement un résultat. Les frais ou les actions externes nécessitent leur propre garde contre les doublons.
Nom utilisé dans le code
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupe Avant d'expédier
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Livraison au moins une fois (At-Least-Once Delivery). User context: Un worker sauvegarde le reçu `evt-42` mais s'arrête avant de supprimer le message Amazon SQS. SQS livre plus tard le même message à nouveau. Le worker suivant voit l'ID de l'événement sauvegardé et retourne le reçu existant au lieu d'en créer un second. Technical concept or control: Livraison au moins une fois (At-Least-Once Delivery). Why it fits: Utilisez cette règle lorsqu'il est pire de perdre un emploi que de le traiter deux fois. Donnez à chaque message un identifiant stable. Un message répété ne doit pas facturer, envoyer un e-mail ou sauvegarder deux fois. Do not use it when: La livraison ne signifie pas que le travail a réussi. Ne promettez pas exactement un résultat. Les frais ou les actions externes nécessitent leur propre garde contre les doublons. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Aucun standard officiel unique ne régit l’ensemble du terme. Sa signification peut varier selon les équipes, plateformes ou frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Vérifiez cette demande
Review how Livraison au moins une fois (At-Least-Once Delivery) is used now. Definition: La livraison au moins une fois tente d'éviter qu'un message ne soit perdu, mais le même message peut arriver plus d'une fois. Le consommateur doit gérer les répétitions en toute sécurité. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.