Eine Message Queue (Nachrichtenwarteschlange) ist ein Zwischenspeicher, über den Producer Nachrichten an Consumer übergeben — asynchron und entkoppelt. Jede Nachricht wird in der Regel genau einem Konsumenten aus einer Gruppe zur Verarbeitung zugeteilt (Point-to-Point).

Vorteile einer Message Queue

  • Asynchronität: Der Producer wartet nicht auf die Verarbeitung, sondern nur auf die Annahme der Nachricht.
  • Puffern: Lastspitzen werden zwischengespeichert, der Consumer arbeitet in seinem eigenen Tempo.
  • Ausfallsicherheit: Ist der Consumer kurz nicht erreichbar, bleiben die Nachrichten in der Queue erhalten.
  • Work-Verteilung: Mehrere parallele Worker teilen sich die Nachrichten (Work Queue, konkurrierende Konsumenten).

Beispiele und Abgrenzung

RabbitMQ und Amazon SQS sind klassische Message Queues. Der Unterschied zum Event Bus und zum Event Stream: Eine Queue löscht eine Nachricht nach erfolgreicher Verarbeitung und erlaubt kein erneutes Lesen durch andere Konsumenten. Ein Event Stream hingegen behält Ereignisse als Log, sodass jeder neue Konsument sie von Anfang an lesen kann (Replay). Der Message Broker ist der Oberbegriff für die Software, die Queues und Queues bereitstellt.

Typische Einsatzzwecke

  • Aufträge an Background-Worker (E-Mails versenden, Bilder verarbeiten)
  • Entkopplung von Webanwendung und Analyse-Pipeline
  • Ausgleich von Lastspitzen bei Bestell- oder Buchungssystemen

Verwandte Grundlagen: Message Passing, Eventual Consistency.