At-Least-Once Delivery
Mindestens-einmal-Lieferung
Die Mindestens-einmal-Lieferung versucht zu verhindern, dass eine Nachricht verloren geht, aber dieselbe Nachricht kann mehr als einmal eintreffen. Der Verbraucher muss Wiederholungen sicher behandeln.
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeevt_784deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeJOBEin weiteres Beispiel
Ein Worker speichert die Quittung `evt-42`, stoppt jedoch vor dem Löschen der Amazon-SQS-Nachricht. SQS liefert später dieselbe Nachricht erneut. Der nächste Worker sieht die gespeicherte Ereignis-ID und gibt die vorhandene Quittung zurück, anstatt eine zweite zu erstellen.
Hauptteile
- 01Stabile Nachrichten-ID
- 02Zustellversuch
- 03Vom Worker erstelltes Ergebnis
- 04Bestätigung oder Löschen
- 05Neuzustellungsweg
- 06Duplikatdatensatz
Verwenden Sie es, wenn
Verwenden Sie diese Regel, wenn der Verlust eines Jobs schlimmer ist, als ihn zweimal zu bearbeiten. Geben Sie jeder Nachricht eine stabile ID. Eine wiederholte Nachricht darf nicht doppelt berechnen, E-Mails versenden oder speichern.
Nutze es nicht, wenn
Zustellung bedeutet nicht, dass die Arbeit erfolgreich war. Versprechen Sie nicht genau ein Ergebnis. Gebühren oder externe Aktionen brauchen eigenen Duplikats-Schutz.
In Code verwendeter Name
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupe Vor dem Ausliefern
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 Mindestens-einmal-Lieferung (At-Least-Once Delivery). User context: Ein Worker speichert die Quittung `evt-42`, stoppt jedoch vor dem Löschen der Amazon-SQS-Nachricht. SQS liefert später dieselbe Nachricht erneut. Der nächste Worker sieht die gespeicherte Ereignis-ID und gibt die vorhandene Quittung zurück, anstatt eine zweite zu erstellen. Technical concept or control: Mindestens-einmal-Lieferung (At-Least-Once Delivery). Why it fits: Verwenden Sie diese Regel, wenn der Verlust eines Jobs schlimmer ist, als ihn zweimal zu bearbeiten. Geben Sie jeder Nachricht eine stabile ID. Eine wiederholte Nachricht darf nicht doppelt berechnen, E-Mails versenden oder speichern. Do not use it when: Zustellung bedeutet nicht, dass die Arbeit erfolgreich war. Versprechen Sie nicht genau ein Ergebnis. Gebühren oder externe Aktionen brauchen eigenen Duplikats-Schutz. 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): Kein einziger offizieller Standard kontrolliert den gesamten Begriff. Seine Bedeutung kann sich zwischen Teams, Plattformen oder Frameworks ändern. 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.
Diese Anfrage prüfen
Review how Mindestens-einmal-Lieferung (At-Least-Once Delivery) is used now. Definition: Die Mindestens-einmal-Lieferung versucht zu verhindern, dass eine Nachricht verloren geht, aber dieselbe Nachricht kann mehr als einmal eintreffen. Der Verbraucher muss Wiederholungen sicher behandeln. 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.