© Manu Padilla/Shutterstock.com
Anwendungsentwicklung mit dem Axon Stack

Event-basiert und evolvierbar


Obgleich das Zielbild sowohl ein Monolith als auch eine Microservices-Architektur sein kann – das Axon Framework offeriert einen leichtgewichtigen Ansatz zur Implementierung Event-basierter Anwendungen. Dabei stützt sich das Framework auf gängige Muster aus dem Domain-driven Design (DDD) [1] und begünstigt die Umsetzung einer Anwendung nach dem Architekturprinzip Command Query Responsibility Segregation (CQRS) [2] und der Persistenzstrategie Event Sourcing [3]. Durch diese Flexibilität und die Tatsache, dass das Axon Framework bestens mit dem Spring Framework integriert ist und damit ein quasistandardisiertes Programmiermodell unterstützt, ist es für den modernen Java-Entwickler einen Blick wert.

Das Axon Framework [4] unterstützt die Modellierung nach den Konzepten des Domain-driven Design und arbeitet konsequent nachrichtenorientiert. Ob man über diese Nachrichten Domänen-Events zwischen Komponenten austauscht oder als Grundlage der Persistenzstrategie begreift, ist dem Entwickler überlassen. Durch den Fokus auf Richtlinien des DDD ist der Entwickler an einen modularen, fachlichen Schnitt in der Anwendung gehalten. Das erlaubt es, zunächst einfach und monolithisch zu starten und sobald die Notwendigkeit gegeben ist, die Architektur in Richtung einer Microservices-Landschaft zu evolvieren (Abb. 1). Genauer gesagt kann eine Axon-gestützte Anwendung als Monolith beginnen, da durch die Event-basierte Kommunikation und die fachliche Modularität, die man durch DDD gewinnt, der Grundstein für eine Migration hin zu einer Microservices-Architektur gelegt ist.

guenther_axon_1.tif_fmt1.jpgAbb. 1: Evolvierfähigkeit einer Axon-gestützten Anwendung

Es hindert aber auch nicht daran, direkt mit Microservices zu starten. Um einen angemessenen fachlichen Schnitt für die Aufspaltung in unterschiedliche Services zu finden, macht man sich das Konzept des Bounded Context aus dem DDD zu Nutzen. Zur Datenintegration kommunizieren Microservices über definierte Schnittstellen miteinander. Ein Kernkonzept des Axon Frameworks ist es, Zustandsveränderungen an einem Aggregat durch die Publikation eines dedizierten Events anderen Microservices gegenüber zu signalisieren. Events sind damit zentraler Bestandteil der Schnittstelle. Event-konsumierende Anwendungen entscheiden selbst, wie sie diese Events interpretieren. Das macht die Umsetzung von CQRS als Architekturmuster einfach: Über eine dedizierte Schnittstelle führt man Zustandsveränderungen in das System ein und publiziert die entsprechenden Events, die ei...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang