Asynchrone Kommunikation und Event-basierte Persistenz

Stets die richtige Größe: Lightbend veröffentlicht reaktives Microservice-Framework Lagom

Michael Thomas

© Shutterstock.com/Supit Choosavang

Das im Zuge der Umfirmierung von Typesafe (nun unter dem Namen Lightbend bekannt) angekündigte Microservice-Framework Lagom ist ab sofort über GitHub verfügbar. Das selbst erklärte Ziel des quelloffenen Frameworks ist es, die Art und Weise, wie Java-Entwickler Microservice-basierte Anwendungen bauen, neu zu definieren. Lagom basiert auf Play und Akka, des Weiteren kommt ConductR, Lightbends kommerzielles Deploymentwerkzeug für verteilte Umgebungen, zum Zuge. Das Framework ist standardmäßig nachrichtengetrieben und asynchron und nutzt verteilte CQRS-Persistenzmuster mit Event Sourcing.

Der Name des Frameworks stammt aus dem Schwedischen: „Lagom“ ist nicht direkt ins Deutsche übersetzbar, kann jedoch ungefähr mit „gerade richtigumschrieben werden. Die Bezeichnung kommt laut Jonas Bonér (CTO von Lightbend) nicht von ungefähr: Ihm zufolge ist das „Micro“ in „Microservice“ im Grunde kontraproduktiv, da es den Blick allzu oft auf Fragen der Größe eines Service sowie die Anzahl der Codezeilen verenge. Demgegenüber komme es vielmehr darauf an, dass ein Service jeweils genau „die richtige Größe“ hat. Diesem Motto folgend sollen Microservice-basierte Anwendungen mithilfe von Lagom leichter als bisher gebaut werden können, indem sich der Nutzer u. a. ganz auf die Geschäftslogik konzentrieren kann.

Lagom Basics

Lagoms Design stützt sich dabei auf drei Hauptprinzipien: Es ist standardmäßig asynchron, bevorzugt statt herkömmlicher zentralisierter Datenbanken verteilte Persistenzmuster und legt zudem Wert auf die Entwicklerproduktivität. Basierend auf den Prinzipien des Reaktiven Manifests weist Lagom einige Features auf, die es von herkömmlichen Microservice-Frameworks absetzen. So legt es den Fokus etwa nicht auf die Erstellung einzelner Microservices, sondern zielt vielmehr auf große, verteilte Microservice-Systeme ab.

Die mithilfe von Lagom erstellten Microservices basieren auf Akka Actors, Akka Cluster und ConductR und sollen dank eines Shared-Nothing-Designs besonders gut isoliert und damit autonom, mobil und locker verbunden sein. Zudem verfolgt Lagon einen Single-Responsibility-Ansatz. Durch Entfernung eines Großteils des Boilerplate-Codes soll das Microservice-Design stark vereinfacht und der Nutzer somit in die Lage versetzt werden, sich auf den Kern der Services – sprich: eine wohldefinierte Aufgabe und eine möglichst reibungslose Zusammenarbeit mit anderen kleinen Programmen – zu konzentrieren.

Des Weiteren sind die Lagom-Services bis hinab auf die Persistenzebene die Eigentümer all ihrer Daten. Lagoms Standard-Persistenzmodell nutzt dabei, basierend auf Akka Persistence und Cassandra, Event Sourcing und Command-Query-Responsibility-Segregation (CQRS). Dadurch sollen sowohl Resilienz als auch eine einfache Skalierung und Replikation erreicht werden. Durch einen jederzeit möglichen Zugriff auf das Event Log soll das Leben der Lagom-Nutzer zudem auch in Debugging-Fragen erleichtert werden; als weiterer Bonus wird der von ORM-Techniken bekannte Impedance Mismatch vermieden.

Zu guter Letzt sind die (Nachrichten- und Stream-basierte) Kommunikation und die Eingabe/Ausgabe in Lagom, u. a. zum Zwecke einer effizienteren Nutzung geteilter Ressourcen innerhalb eines Systems, standardmäßig asynchron und nicht-blockierend. Auf Wunsch können für die Kommunikation jedoch auch synchrone Protokolle (z. B. REST) zum Einsatz kommen.

Lagom steht unter Apache-Lizenz und ist über GitHub verfügbar. Weiterführende Informationen können der ausführlichen Dokumentation entnommen werden. Für besonders eilige haben die Lagom-Entwickler zudem ein kurzes Video produziert, das in die Grundlagen des Frameworks einführt:

Aufmacherbild: old light bulbs holding in wrench von Shutterstock / Urheberrecht: Pavel Ignatov

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Stets die richtige Größe: Lightbend veröffentlicht reaktives Microservice-Framework Lagom"

avatar
400
  Subscribe  
Benachrichtige mich zu:
heiko
Gast

-> REST ist ein Architekturmuster und kein Protokoll.