/pattern/pubsub-mesh/

04 · ProductionRuntime ArchitectureAgent MeshPublish-Subscribe AgentsMessage Bus Coordination

Pub/Sub Agent Mesh.
Topics, keine Adressen. Agenten abonnieren, was sie interessiert.

Agenten publizieren auf benannte Topics und abonnieren sie auf einem gemeinsamen Bus, statt sich direkt aufzurufen, sodass ein Publisher nie weiß, wer seine Ereignisse konsumiert, und Subscriber hinzugefügt oder entfernt werden können, ohne den Publisher anzufassen.

In der PraxisEine Sensor-Überwachungsplattform veröffentlicht `anomaly.detected`-Ereignisse auf einem gemeinsamen Bus; drei unabhängige Agenten – Alarmierung, Protokollierung und automatische Fehlerbehebung – abonnieren jeweils und reagieren unabhängig, ohne voneinander zu wissen.

Wann man dazu greift

  • Viele Agenten oder Dienste lose gekoppelt sind.
  • Ereignisse an mehrere Empfänger gehen.
  • Erweiterbarkeit ohne zentrale Abhängigkeiten wichtig ist.

Wann es nach hinten losgeht

  • Direkte synchrone Aufrufe ausreichen.
  • Nachrichtenreihenfolge und -zustellung ungeklärt sind.
  • Beobachtbarkeit nicht etabliert ist.

Die Abwägung

Skalierbare Entkopplung wird auf Kosten komplexerer Zustellung, Debugging und Governance gewonnen.

Die Wirkung

Was es tatsächlich tut.

Nachrichten werden an alle interessierten Subscriber verteilt.

publishtopicsubscribersubscribersubscriber
Fallstricke

Zwei Wege, wie dieses Pattern Probleme verursachen kann.

Topic-Taxonomie verrottet

Topics werden ad-hoc geprägt; Quasi-Synonyme vermehren sich; Agenten abonnieren das eine und verpassen Nachrichten, die unter dem anderen veröffentlicht wurden. Die Benennung ist die Bug-Oberfläche des Systems.

Lösung · Topic-Definitionen in einer Registry mit Beschreibungen und Zuständigkeit zentralisieren. Veröffentlichungen auf nicht registrierten Topics am Broker ablehnen.

Mindestens-einmal-Zustellung verarbeitet ein Ereignis doppelt

Der Bus stellt ein Ereignis erneut zu, nachdem das Consumer-Ack abgelaufen ist. Ein nicht idempotenter Handler führt den Seiteneffekt zweimal aus — eine zweite Abbuchung, eine doppelte Bestellung, eine verdoppelte Metrik.

Lösung · Handler idempotent über die Event-ID gestalten und beim Consumer innerhalb eines Fensters deduplizieren; niemals Exactly-once vom Broker annehmen.

Framework-Unterstützung

Wo Pub/Sub Agent Mesh nativ ist.

AWSArchitecturesNativ
Microsoft Agent FrameworkMessage-Bus-AgentenNativ
LangGraphEvent-Bus-RuntimeNativ

Suche

Patterns, Frameworks und Seiten durchsuchen.