Message Queue (Nachrichtenwarteschlange)
Kurz: Eine Message Queue nimmt Nachrichten von einem Programm an und gibt sie später an ein anderes weiter. So müssen beide nicht gleichzeitig laufen oder gleich schnell sein.
Genauer: Der Absender (Producer) legt eine Aufgabe in die Warteschlange, ein Empfänger (Consumer) arbeitet sie ab. Fällt der Empfänger aus oder ist überlastet, bleiben die Nachrichten erhalten. Beispiele: RabbitMQ, Apache Kafka, Amazon SQS, Redis Streams.
Im Detail
- Entkopplung: Der Webserver antwortet sofort, schwere Arbeit (Mails senden, Bilder verkleinern) macht ein Worker im Hintergrund.
- Wiederholung: Schlägt eine Aufgabe fehl, wird sie nochmal versucht. Aufgaben sollten deshalb idempotent sein (Idempotenz).
- Dead-Letter-Queue: Sammelt Nachrichten, die immer wieder scheitern.
- Pub/Sub: Eine Nachricht geht an viele Abonnenten.
- Reihenfolge und Dopplung: Nicht jedes System garantiert beides. Das muss man bedenken.
Siehe auch: Microservices, Webhooks