Warum SAP Event Mesh? Grundlagen, erste Schritte und echte Anwendungsfälle!

In modernen Cloud-Architekturen spielt die Art und Weise, wie Anwendungen miteinander kommunizieren, eine zentrale Rolle. Klassisch erfolgt diese Kommunikation synchron: Eine Anwendung ruft eine andere auf und wartet auf deren Antwort. Das funktioniert zwar zuverlässig, bringt aber auch Nachteile mit sich – etwa eine starke Kopplung zwischen Systemen, eingeschränkte Skalierbarkeit und potenzielle Abhängigkeiten bei Ausfällen.

Was ist SAP Event Mesh – und welchen Nutzen bringt der Service?

SAP Event Mesh setzt auf einen anderen Ansatz. Die asynchrone Kommunikation über Events. Dabei versendet ein System eine Nachricht, ohne dass der Empfänger sofort reagieren oder überhaupt bekannt sein muss. Andere Systeme können diese Ereignisse gezielt abonnieren und darauf reagieren – ganz nach dem Publisher/Subscriber-Prinzip.

Der Service ist ein vollständig verwalteter Cloud-Dienst auf der SAP Business Technology Platform (BTP). Er ermöglicht es, Nachrichten und Geschäftsevents zuverlässig und technologieübergreifend zwischen Anwendungen und Services auszutauschen. Dabei kommen offene Messaging-Protokolle und standardisierte Austauschmuster zum Einsatz, die eine lose Kopplung und hohe Flexibilität in der Architektur fördern.

Gerade im Zusammenspiel mit dem SAP Cloud Application Programming Model (CAP) eröffnet Event Mesh neue Möglichkeiten: Eine CAP-App kann beispielsweise ein Event beim Abschluss eines Geschäftsprozesses veröffentlichen, das andere CAP- oder Drittanwendungen automatisch verarbeiten – ohne direkte Integration.

Vorteile von SAP Event Mesh

  • Entkopplung von Systemen: Anwendungen sind unabhängig voneinander und können flexibel erweitert oder aktualisiert werden.
  • Asynchrone Kommunikation: Sender und Empfänger müssen nicht gleichzeitig aktiv sein – es wird keine direkte Antwort erwartet.
  • Zuverlässige Zustellung: Nachrichten gehen nicht verloren – der Event Broker sorgt für garantierte Auslieferung.
  • Bessere Wartbarkeit: Änderungen in einem System beeinflussen andere nicht direkt.
  • Hohe Qualität der Kommunikation: SAP Event Mesh unterstützt verschiedene "Quality of Service"-Stufen für unterschiedliche Anforderungen.

Use Cases

Integration von SAP- und Non-SAP-Systemen
Ein neues Verkaufsdokument wird in SAP S/4HANA erstellt. Über Event Mesh wird ein Ereignis ausgelöst, das automatisch eine Kundendaten-Synchronisation in einem externen CRM-System oder eine Bestandsprüfung in einem Drittsystem anstößt.

Echtzeit-Benachrichtigungen
Wenn ein Wartungsauftrag in einer Instandhaltungs-App abgeschlossen wird, kann Event Mesh eine Benachrichtigung an ein mobiles Fiori-Frontend oder eine Collaboration-Plattform wie Microsoft Teams senden.

Kopplung von Microservices
In einer CAP-basierten App wird nach dem Anlegen einer neuen Bestellung ein Event publiziert. Ein separater Microservice, der für die Rechnungsstellung oder die Lieferplanung zuständig ist, reagiert darauf, ohne dass die Systeme direkt voneinander abhängen.

Für wen ist Ereignisgesteuerte Architektur interessant?

In diesem Blogartikel zeige ich, wie SAP Event Mesh SAP CAP-Anwendungen durch asynchrone Kommunikation flexibler und skalierbarer macht.

Besonders profitieren Fachrollen, die komplexe Integrationen oder skalierbare Architekturen entwerfen:

  • SAP Development Consultants / Full-Stack-Entwickler – für die Umsetzung von Event-getriebenen Apps und Services.
  • Integration Architects / Integration Consultants – für die Anbindung von SAP- und Non-SAP-Systemen über lose gekoppelte Schnittstellen.
  • Solution Architects & Enterprise Architects – für das Design skalierbarer, zukunftssicherer Gesamtarchitekturen.
  • DevOps-Teams – für den stabilen Betrieb und die flexible Erweiterbarkeit produktiver Anwendungen.
  • Product Owner – für die Gestaltung moderner, reaktionsfähiger Geschäftsprozesse.

Was sind die zentralen Komponenten & Grundlagen?

Wie in der Einleitung beschrieben, handelt es sich bei SAP Event Mesh um einen Cloud-Service für die asynchrone Kommunikation zwischen Anwendungen.
Damit eine eventgesteuerte Architektur korrekt aufgebaut und verstanden werden kann, sollten die folgenden Kernbegriffe bekannt sein:

  • Ein Event ist eine Nachricht, die ein Ereignis oder eine Zustandsänderung beschreibt – etwa „Ein Equipment wurde erstellt“.
    Events werden von Anwendungen oder Services erzeugt (Publisher) und können von einem oder mehreren Empfängern (Subscriber) verarbeitet werden.
  • Ein Topic dient als thematische Einordnung eines Events.
    Events werden an Topics „veröffentlicht“ (publish), um sie systematisch kategorisieren und gezielt weiterleiten zu können.
    Beispiele: equipment/created
  • Eine Queue (Warteschlange) speichert Nachrichten zwischen, bis sie von einem Consumer abgeholt werden.
    Sie entkoppelt Sender und Empfänger zeitlich voneinander und sorgt dafür, dass Nachrichten auch bei temporären Ausfällen nicht verloren gehen.
  • Die Subscription verknüpft ein Topic mit einer Queue.


Erst durch diese Verbindung gelangen Events aus einem bestimmten Topic in eine definierte Queue.
Ohne Subscription werden veröffentlichte Events nicht weitergeleitet oder gespeichert.

Zusammenspiel der Komponenten:

Publisher → sendet Event an ein Topic
Subscription → verbindet Topic mit einer Queue
Queue → stellt das Event einem Consumer zur Verfügung

Wie funktioniert das technisch?

Auf der SAP Business Technology Platform (BTP) kann eine Instanz des SAP Event Mesh (ehemals Enterprise Messaging) Services erstellt werden. Über das zugehörige Messaging Dashboard lassen sich anschließend folgende Elemente konfigurieren:

  • Queues (Warteschlangen): Empfangen und speichern Nachrichten, bis sie von einem Subscriber verarbeitet werden.
  • Subscriptions: Verknüpfen bestimmte Topics (z.B. equipment/created) mit einer Queue.

Wenn man SAP CAP verwendet, kann das Framework – je nach Konfiguration – Queues und Subscriptions automatisch erzeugen, basierend auf den im Code definierten Events (z. B. cds.emit()).

Das reduziert den manuellen Aufwand und erleichtert die Integration von Event Mesh in bestehende Anwendungen.

Vorbereitung und Umsetzung

Enterprise Messaging für den Subaccount verfügbar machen.

Bevor du SAP Event Mesh nutzen kannst, musst du sicherstellen, dass die nötigen Entitlements für deinen Subaccount aktiviert sind. So gehst du vor:

  1. Gehe in der BTP Cockpit zu deinem Global Account.
  2. Wähle im linken Menü „Entitlements“ → „Subaccount Assignments“.
  3. Wähle den gewünschten Subaccount und klicke auf „Configure Entitlements“.
  4. Füge den Service „Enterprise Messaging“ hinzu:
    • Klicke auf „Add Service Plans“.
    • Filtere nach „messaging“.
    • Wähle „Enterprise Messaging“ aus.
    • Je nach Umgebung:
      • In der Trial-Umgebung wähle den Plan „dev“
      • In der Produktivumgebung wähle „default“
    • Bestätige mit „Add“.
  5. Abschließend auf „Save“ klicken (oben rechts), um die Änderungen zu übernehmen.

🔓 Hinweis: Falls der Service in einem anderen Subaccount bereits verwendet wird, musst du das Entitlement dort ggf. entfernen, bevor du es neu zuweisen kannst.

Nach dem Speichern kannst du im Service Marketplace deines Subaccounts die Enterprise Messaging Kachel sehen und eine Instanz anlegen.

 

Rolle vergeben

Damit Benutzer den Enterprise Messaging Service verwalten und nutzen können, benötigen sie spezielle Rollen. Dies dient dem Schutz vor ungewollten Änderungen an der Systemkonfiguration.

🔧 Schritte zur Einrichtung:

  1. Gehe im Subaccount zu Security → Role Collections
  2. Klicke auf „New Role Collection“
  3. Füge folgende Rollen zur neuen Sammlung hinzu:
    • ReadRole
    • ManageRole
    • TestRole (optional, für Messaging-Dashboard-Tests)
  4. Gehe zu „Trust Configuration“ (im linken Menü des Subaccounts)
  5. Wähle deinen Identity Provider (z.B. SAP ID Service)
  6. Gib deine E-Mail-Adresse ein und klicke auf „Show Assignments“
  7. Weise deiner Benutzer-ID die neue Role Collection zu

💡 Hinweis: Bestehende (vordefinierte) Rollensammlungen verwenden, z. B. MessagingAdmin, falls man keine eigene Sammlung erstellen möchte.

Messaging testen

⚠️ Hinweis: Diese Funktion ist nur im Produktivaccount verfügbar, wenn die Event Mesh Instanz mit dem Serviceplan default angelegt wurde.

📤 Nachricht senden (Publish)

  1. Öffne im Event Mesh Dashboard den Reiter „Test“.
  2. Wähle „Publish“ aus.
  3. Wähle die Queue, die du zuvor erstellt hast.
  4. Gib eine Beispielnachricht ein, z.B. "hello".
  5. Klicke auf „Publish“.
  6. Ergebnis:
    • Der Nachrichtenzähler steigt um +1.
    • Im Tab „Queues“ wird ebenfalls ein erhöhter Zähler angezeigt.
      → Die Nachricht wurde erfolgreich in die Queue gestellt.

📥 Nachricht empfangen (Consume)

  1. Wechsle wieder zum Reiter „Test“.
  2. Wähle diesmal „Consume“.
  3. Wähle erneut die gleiche Queue aus.
  4. Klicke auf „Consume“.
  5. Ergebnis:
    • Der Payload der Nachricht (z.B. "hello") wird angezeigt.
    • Der Zähler reduziert sich um -1.
      → Die Nachricht wurde aus der Queue abgeholt.