ADR › Mosquitto als Broker
status |
accepted |
date |
2023-04-17 |
deciders |
Finn Gedrath |
consulted |
|
informed |
|
Kontext und Problemstellung
Jeder Microservice benötigt eine Möglichkeit, Nachrichten zu versenden und zu empfangen, um mit den mobilen Endgeräten asynchon kommunizieren zu können. Dafür wird ein Message Broker benötigt. Dieser muss MQTT unterstützen, um die Kommunikation so leicht (kleine Pakete) und konzeptionell-simpel zu halten.
Entscheidungstreiber
- Ausführlichkeit der Dokumentation
- Protokoll-Unterstützung
In Betracht gezogene Optionen
- Mosquitto
- RabbitMQ
- HiveMQ
Ergebnis der Entscheidung
Gewählte Option: “Mosquitto”, weil
von natur aus MQTT unterstützt und vollständig Open-Source ist (Genauer s.u.)
Consequences
- Gut, weil geringer Einrichtungsaufwand
- Netrual, weil nur MQTT unterstützt wird und ein Wechsel des Protokolls auch ein Wechsel des Brokers bedeutet → Wechsel des Brokers ist geringer Aufwand, da für Services der spezfische Broker egal ist.
Pro und Kontra der Optionen
Mosquitto
- Projektseite
-
Docker Image
- 🟢 Gut, weil es simpel gehalten ist und für einen Use Case ausgelegt ist
- 🟢 Gut, weil komplett Open Source ist
- 🟡 Neutral, weil nur MQTT unterstützt wird (nur Topic-Pattern)
RabbitMQ
- Projektseite
-
Docker Image
- 🟢 Gut, weil Broker mehrere Protokolle (darunter: AMQP) gleichzeitig unterstützt (Topic + RPC-Pattern)
- 🟡 Neutral, weil viele Einstellungsmöglichkeiten existieren (→ Komplexität)
HiveMQ
- Projektseite
-
Docker Image
- 🟢 Gut, weil es simpel gehalten ist und für einen Use Case ausgelegt ist
- 🔴 Schlecht, weil viele Funktionen nur gegen Bezahlung verfügbar sind