Microservices: Micronaut Predator verspricht optimiertes Laufzeitverhalten
Mit dem Open-Source-Projekt Predator sollen auch Java-Entwickler von den GORM- und Spring-Data-Funktionen für die Data-Access-Repository-Logik profitieren.
Die Macher hinter dem JVM-Framework Micronaut haben mit Predator ein neues Open-Source-Projekt veröffentlicht, das auch Java-Entwicklern verbessertes Laufzeitverhalten und optimierte Memory Performance für die Data-Access-Repository-Logik bei Microservices- und Serverless-Anwendungen verspricht. Das von Precomputed Data Repositories abgeleitete Projekt Predator greift den lange gehegten Wunsch von Micronut-Anwendern nach einem "GORM for Java" beziehungsweise der Unterstützung für Spring Data auf.
In Anlehnung an GORM und Spring Data
Während Groovy-Programmierern in dem JVM-Framework die aus Grails stammende GORM-Funktion bereits seit Einführung von Micronaut zur Verfügung stand, mussten Java-Entwickler bisher auf Spring Data vertrauen, um Finder-Methoden wie findByTitle
in einer Schnittstelle zu definieren und die Query-Logik zur Laufzeit automatisch zu implementieren. Anstatt jedoch ein Modul zur Konfiguration von Spring Data hinzuzufügen, bauen die Micronaut-Entwickler von Object Computing mit Predator auf einen alternativen Ansatz, der die AoT-Compilation APIs (Ahead-of-Time) des JVM-Frameworks nutzt.
Diese Vorgehensweise erlaubt es, das Entity-Meta-Modell in den Compiler zu verschieben und Finder Expressions wie findByTitle
erst während der Kompilierung in entsprechende SQL- oder JPA-QL-Abfragen zu übersetzen. Nach Einschätzung der Micronaut-Entwickler ergeben sich daraus signifikante Performancevorteile, wenn auf Basis der Reflection-freien AOP (Aspect Oriented Programming) zur Kompilierzeit die Runtime lediglich noch die Abfragen ausführen und die Ergebnisse zurückspielen muss. Ersten Test zufolge soll Predator JDBC etwa viermal schneller als GORM und rund doppelt so schnell wie Spring Data arbeiten.
Weitere Details zu Predator finden sich im Blogbeitrag zur Ankündigung. Das Projekt steht ab sofort mit Unterstützung für JPA und SQL unter Apache-Lizenz quellfrei auf GitHub zur Verfügung. Support für weitere Datenbanken wie MongoDB, Neo4j oder Reactive SQL soll in künftigen Predator-Versionen folgen. (map)