Message Queue
Nachrichtenwarteschlange
Eine Nachrichtenwarteschlange hält Arbeit oder Nachrichten, bis ein Verbraucher sie bearbeiten kann. Produzenten und Verbraucher können zu unterschiedlichen Zeiten und Geschwindigkeiten arbeiten.
Ein weiteres Beispiel
Der Checkout schreibt Bestellung 984 und einen Outbox-Datensatz in einer Transaktion. Ein Relay sendet dann „Beleg erstellen“ an eine dauerhafte Warteschlange. Drei Arbeiter bestätigen dies erst nach dem Speichern des PDFs und wiederholen kurze Speicherfehler mit Backoff. Eine Nachricht, die immer fehlschlägt, geht mit ihrer Korrelations-ID in eine Dead-Letter-Warteschlange.
Hauptteile
- 01Produzent und Nachricht
- 02dauerhafte Warteschlange und Lieferung
- 03Verbraucherbestätigung und Fehlerpfad
Verwenden Sie es, wenn
Verwenden Sie eine Warteschlange, um Verkehrsspitzen zu bewältigen, langsame Arbeit zu trennen, kurze Fehler erneut zu versuchen oder Aufgaben zu teilen. Definieren Sie genau, wie die Lieferung funktioniert.
Nutze es nicht, wenn
Fügen Sie keine Warteschlange hinzu, wenn eine sofortige Antwort erforderlich ist. Vermeiden Sie sie auch ohne idempotente Verbraucher, Rückstandslimits, Beobachtbarkeit und einen Plan für Nachrichten, die immer fehlschlagen.
In Code verwendeter Name
durable queue + delivery/ack policy + idempotent consumer + retry/DLQ 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 Nachrichtenwarteschlange (Message Queue). User context: Der Checkout schreibt Bestellung 984 und einen Outbox-Datensatz in einer Transaktion. Ein Relay sendet dann „Beleg erstellen“ an eine dauerhafte Warteschlange. Drei Arbeiter bestätigen dies erst nach dem Speichern des PDFs und wiederholen kurze Speicherfehler mit Backoff. Eine Nachricht, die immer fehlschlägt, geht mit ihrer Korrelations-ID in eine Dead-Letter-Warteschlange. Technical concept or control: Nachrichtenwarteschlange (Message Queue). Why it fits: Verwenden Sie eine Warteschlange, um Verkehrsspitzen zu bewältigen, langsame Arbeit zu trennen, kurze Fehler erneut zu versuchen oder Aufgaben zu teilen. Definieren Sie genau, wie die Lieferung funktioniert. Do not use it when: Fügen Sie keine Warteschlange hinzu, wenn eine sofortige Antwort erforderlich ist. Vermeiden Sie sie auch ohne idempotente Verbraucher, Rückstandslimits, Beobachtbarkeit und einen Plan für Nachrichten, die immer fehlschlagen. 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 Nachrichtenwarteschlange (Message Queue) is used now. Definition: Eine Nachrichtenwarteschlange hält Arbeit oder Nachrichten, bis ein Verbraucher sie bearbeiten kann. Produzenten und Verbraucher können zu unterschiedlichen Zeiten und Geschwindigkeiten arbeiten. 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.