Product Owner
03.07.2023
Sarah Berger

Alles was du als Product Owner über das Thema Event-Driven-Systems wissen musst


Als Product Owner stehst du vor der Herausforderung, Produkte zu entwickeln und kontinuierlich zu verbessern, um die Bedürfnisse deiner Kunden zu erfüllen. In einer digitalisierten Welt, in der Echtzeitkommunikation und hohe Benutzererwartungen an der Tagesordnung sind, können Event-Driven-Systems ein wertvolles Werkzeug für die Optimierung deiner Produktentwicklung sein. In diesem Blogartikel werden wir uns genauer mit Event-Driven-Systems befassen und besprechen, warum du als Product Owner darauf achten solltest, ob du ein Event-Driven System entwickelst.

Was sind Event-Driven-Systems?


Event-Driven-Systems sind eine Art der Softwarearchitektur, bei der Ereignisse im Mittelpunkt stehen. Ereignisse sind bedeutungsvolle Vorkommnisse innerhalb des Systems, die eine Reaktion auslösen können. Beispiele für Ereignisse sind Benutzerinteraktionen, Systembenachrichtigungen oder Datenaktualisierungen. Das Besondere an Event-Driven-Systems ist, dass sie auf diese Ereignisse reagieren und entsprechende Aktionen auslösen können.

Beispiel: Stell dir vor, du entwickelst eine E-Commerce-Plattform. Du möchtest, dass dein System sofort auf die Bestellung eines Kunden reagiert. In einem Event-Driven-System wird das Ereignis "Bestellung aufgegeben" erkannt und verschiedene Aktionen können ausgelöst werden, wie z.B. die Aktualisierung des Lagerbestands, die Benachrichtigung des Versandteams oder das Auslösen einer Bestätigungs-E-Mail an den Kunden.

Komponenten eines Event-Driven Systems


Event Producer:

Der Event Producer ist verantwortlich für das Erzeugen und Auslösen von Ereignissen. Er identifiziert die Ereignisse, die im System auftreten können, und stellt sicher, dass sie korrekt erfasst und an den Event Broker weitergeleitet werden.

Event Broker:

Der Event Broker ist eine zentrale Komponente des Event-Driven-Systems. Er empfängt die Ereignisse vom Event Producer und leitet sie an die entsprechenden Event Consumer weiter. Der Event Broker stellt sicher, dass die Ereignisse zuverlässig und effizient zwischen den Komponenten kommuniziert werden.

Event Consumer:

Der Event Consumer ist für die Verarbeitung der Ereignisse zuständig. Er reagiert auf die empfangenen Ereignisse und führt die entsprechenden Aktionen aus. Dies können beispielsweise Datenaktualisierungen, Benachrichtigungen an Benutzer oder das Auslösen weiterer Ereignisse sein.

Event:

Ein Event ist ein konkretes Ereignis, das im System auftritt und eine Bedeutung hat. Es kann unterschiedliche Informationen enthalten und Auswirkungen auf den Systemzustand oder andere Komponenten haben.

Topic:

Ein Topic ist ein zentrales Konzept in Event-Driven-Systems. Es definiert das Thema oder die Kategorie, zu der ein Ereignis gehört. Events werden bestimmten Topics zugeordnet, um sie zu organisieren und eine gezielte Weiterleitung an Event Consumer zu ermöglichen.

Topic Subscription

Wenn ein Event Consumer sich für ein bestimmtes Topic anmeldet, abonniert er dieses Thema. Das bedeutet, dass er nur Ereignisse empfängt, die diesem Topic zugeordnet sind. Durch das Abonnieren von Topics kann ein Event Consumer gezielt auf Ereignisse reagieren, die für ihn relevant sind, und andere Ereignisse ignorieren.

Das folgende Schaubild zeigt alle genannten Komponenten in Beziehung zueinander.

Komponenten eines Event-Driven-Systems


Vorteile von Event-Driven-Systems


- Skalierbarkeit: Event-Driven-Systems sind besonders vorteilhaft, wenn du ein Produkt entwickelst, das auf schnelles Wachstum ausgelegt ist und eine große Anzahl von Benutzern unterstützen muss. Durch die dezentrale Natur von Events können Komponenten unabhängig voneinander arbeiten und das System flexibel skalieren.


- Echtzeit-Reaktionsfähigkeit: Kunden erwarten heutzutage schnelle Reaktionen. Event-Driven-Systems ermöglichen es dir, auf Ereignisse in Echtzeit zu reagieren und sofortige Aktionen auszulösen. Dadurch kannst du ein besseres Benutzererlebnis bieten und Wettbewerbsvorteile erzielen.


- Entkoppelte Architektur: Event-Driven-Systems ermöglichen eine lose Kopplung zwischen den Komponenten. Dadurch kannst du einzelne Komponenten unabhängig voneinander entwickeln, aktualisieren und austauschen, ohne das gesamte System beeinflussen zu müssen. Das erleichtert die Wartung und Weiterentwicklung deines Produkts.


- Datengetriebene Entscheidungsfindung: Durch die Nutzung von Event-Driven-Systems erhältst du wertvolle Ereignisdaten, die dir helfen können, fundierte Entscheidungen zu treffen und deine Produktstrategie kontinuierlich zu optimieren. Du kannst Trends erkennen, Benutzerverhalten analysieren und deine Entscheidungen auf verlässlichen Daten basieren.

Hauptunterschiede zu Request-Driven-Design:


Im Vergleich zum traditionellen Request-Driven Design, bei dem Anfragen (Requests) von einem zentralen Controller koordiniert werden, bietet das Event-Driven Design eine Reihe von Vorteilen:

- Lockere Kopplung: Im Request-Driven Design sind Komponenten eng miteinander gekoppelt, da sie direkt auf Anfragen reagieren müssen. Im Event-Driven Design hingegen sind die Komponenten unabhängig voneinander und reagieren auf Ereignisse, was zu einer lockeren Kopplung führt.

- Echtzeit-Reaktionsfähigkeit: Im Request-Driven Design muss ein Komponente auf eine Anfrage warten und kann erst dann reagieren. Im Event-Driven Design hingegen kann eine Komponente sofort auf ein Ereignis reagieren und Aktionen auslösen, ohne auf eine Anfrage warten zu müssen.

- Flexibilität und Skalierbarkeit: Event-Driven-Systems sind aufgrund ihrer dezentralen Natur flexibler und skalierbarer als Request-Driven-Systeme. Neue Komponenten können leicht hinzugefügt werden, und das System kann effizient auf wachsende Anforderungen reagieren.

Fazit


Als Product Owner kannst du von den Vorteilen von Event-Driven-Systems profitieren. Sie bieten Flexibilität, Skalierbarkeit und ermöglichen die Entkoppelung von Systemkomponenten. Indem du ein Event-Driven System entwickelst, kannst du besser auf Kundenbedürfnisse eingehen, die Benutzererfahrung verbessern und dein Produkt erfolgreich weiterentwickeln. Achte dabei auf die Komponenten des Systems, wie den Event Producer, Event Broker und Event Consumer, sowie die Nutzung von Topics und Topic Subscriptions, um sicherzustellen, dass Ereignisse effizient erfasst, verarbeitet und weitergeleitet werden. Vergleiche auch die Unterschiede zum traditionellen Request-Driven Design, um die Vorteile von Event-Driven-Systems zu verstehen und zu nutzen.

Du hast Fragen zu diesem Thema?

Kontakt aufnehmen
Biberei Icon

Kategorien

Softwareentwicklung
Product Owner

Lass uns über dein Projekt reden

Erzähle uns in einem kostenlosen Erstgespräch mehr über dein individuelles Projekt. Wir helfen dir bei den nächsten Schritten und teilen unser Wissen.

Nachricht schreiben