Katalog
concept#Integration#Architektur#Plattform#Zuverlässigkeit

Message-Oriented Middleware (MOM)

Middleware-Prinzip zur asynchronen, entkoppelten Kommunikation verteilter Systeme über Nachrichten, Broker, Queues und Topics.

Message-Oriented Middleware (MOM) ist ein Architekturkonzept zur entkoppelten Kommunikation zwischen verteilten Anwendungen über asynchrone Nachrichtenkanäle.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

Datenbanken (z. B. PostgreSQL) für Persistenz und ReplayStreaming-Plattformen (z. B. Apache Kafka) für hohe Durchsatz-SzenarienMonitoring-Tools (z. B. Prometheus, Grafana)

Prinzipien & Ziele

Entkopplung von Produzenten und KonsumentenBekannte Semantik für Nachrichten (Formate, Versionierung)Sichtbare und messbare QoS- und Fehlerstrategien
Umsetzung
Unternehmen, Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Single-Point-of-Failure bei unzureichend skalierter Broker-Architektur
  • Dateninkonsistenzen bei schlechtem Error-Handling
  • Kosten für Betrieb und Speicher bei hoher Persistenzanforderung
  • Nachrichten klein und idempotent gestalten
  • Dead-Letter-Queues und Retries konsistent handhaben
  • Schemaversionierung und Kompatibilitätsregeln einführen

I/O & Ressourcen

  • Definition von Nachrichtenformaten und Schemata
  • Broker-Software und Infrastruktur
  • Monitoring- und Alerting-Konfiguration
  • Entkoppelte Nachrichtenflüsse
  • Operationalisierte Broker-Cluster
  • Metriken zu Durchsatz und Latenz

Beschreibung

Message-Oriented Middleware (MOM) ist ein Architekturkonzept zur entkoppelten Kommunikation zwischen verteilten Anwendungen über asynchrone Nachrichtenkanäle. Es ermöglicht Zuverlässigkeit, Skalierbarkeit und unterschiedliche QoS-Level durch Broker, Queues und Topics. Implementierungen variieren in Persistenz, Routing und Transaktionsunterstützung.

  • Verbesserte Resilienz durch Pufferung und Wiederholung
  • Skalierbarkeit durch asynchrone Verarbeitung
  • Geringere Kopplung und einfachere Evolution einzelner Komponenten

  • Einführung operationaler Infrastruktur (Broker, Storage)
  • Komplexität bei Reihenfolge- und Transaktionsgarantien
  • Potenzielle Latenz durch Persistenz und Wiederholungen

  • Nachrichten-Durchsatz

    Anzahl verarbeiteter Nachrichten pro Sekunde als Maß für Kapazität.

  • End-to-End-Latenz

    Zeit vom Senden einer Nachricht bis zur Verarbeitung durch den Consumer.

  • Dead-Letter-Rate

    Anteil der Nachrichten, die in Dead-Letter-Queues landen, als Indikator für Fehler.

RabbitMQ in Bestell- und Lieferketten

RabbitMQ als Broker zur Entkopplung von Bestellaufnahme, Zahlungs- und Lieferdiensten in einer Microservice-Architektur.

ActiveMQ für Legacy-Messaging

Apache ActiveMQ wird genutzt, um JMS-basierte Legacy-Systeme an moderne Event-Processing-Pipelines anzubinden.

MQTT für IoT-Telemetrie

Leichtgewichtige Broker-Architektur mit MQTT für mobile und eingebettete Geräte zur Telemetrie-Übertragung.

1

Anforderungen analysieren: Zuverlässigkeit, Durchsatz, Ordering.

2

Nachrichtenformate und Schemata definieren sowie Versionierungsstrategie festlegen.

3

Geeignete Broker-Software auswählen, konfigurieren und in Cluster betreiben.

4

Consumers/Producers implementieren, Tests für Fehler- und Lastszenarien durchführen.

5

Monitoring, Alerting und Recovery-Prozesse etablieren.

⚠️ Technische Schulden & Engpässe

  • Fehlende Schemadokumentation und Versionierung
  • Monolithische Broker-Konfiguration ohne Automatisierung
  • Unzureichende Monitoring- und Alerting-Regeln
DurchsatzbegrenzungBroker-LatenzI/O- und Speicher-Engpässe
  • Verwendung von MOM als Ersatz für eine einfache API ohne Bedarf an Entkopplung
  • Persistenz für alle Nachrichten erzwingen, obwohl flüchtige Events ausreichen
  • Fehlende Beobachtbarkeit, sodass Fehler unentdeckt bleiben
  • Versteckte Abhängigkeiten durch implizite Topics oder Queues
  • Falsche Annahmen zur Nachrichtenreihenfolge über mehrere Partitionen
  • Nicht getestete Recovery-Szenarien nach Broker-Ausfall
Verständnis verteilter Systeme und Messaging-PatternsBetrieb und Skalierung von Broker-ClusternFehlerbehandlung und Observability für asynchrone Flüsse
Lose Kopplung zwischen KomponentenHohe Verfügbarkeit und FehlertoleranzSkalierbarkeit bei variablen Lasten
  • Netzwerkzuverlässigkeit und Bandbreite
  • Anforderungen an Nachrichtenpersistenz
  • Kompatibilität mit vorhandenen Protokollen (JMS, AMQP, MQTT)