Letze Woche waren wir mit fünf Mitarbeitern in Stuttgart auf dem Java Forum Stuttgart.
Das Java Forum Stuttgart ist jedes mal wieder ein grandioses Event und auf jeden Fall einen Besuch wert.
Folgende Vorträge habe ich mir angehört und das waren meine Learnings:
Trends in modern software architecture …and how to avoid them
Hexagonale Architektur, Reaktive Programmiermodelle und Event Sourcing sind einige Beispiele für Patterns und Technologien die auf den ersten Blick fortschrittlich und vorteilhaft erscheinen, aber eine entscheidende Gemeinsamkeit haben: Hohe Komplexität.
Die Empfehlung ist also komplizierte Patterns nur dann zu verwenden wenn es wirklich notwendig ist und das Team auch mit der Komplexität umgehen kann.
Tools wie ArchUnit können helfen die Architektur zu testen.
Going Serverless With Spring Boot 3
Durch Cloud und Serverless Infrastrukturen wird die Startzeit und der Speicherverbrauch von Anwendungen immer wichtiger. Timo Salm hat in seinem Talk die Möglichkeiten beleuchtet, die das Java Ecosystem zur Zeit bietet um die Performance zu optimieren:
Alle diese Techniken sind sehr viel versprechend, bedeuten aber je nach Projekt einigen Aufwand. Ich habe selber schon mit GraalVM experimentiert, hab aber unsere Anwendung aufgrund ein paar Libraries nicht nativ kompilieren können. Ich werde das in kürze noch mal angehen.
Virtuelle Threads: Nur nicht den Faden verlieren!
Bei unseren Kunden haben wir die Anwendungen auf Java 21 migriert oder sind dabei. Das wichtigste Feature sind sicherlich die Virtual Threads, die massive performance Improvements versprechen. Den Vortrag von Christian Schuster konnte ich mir deshalb nicht entgehen lassen.
Die wichtigsten Punkte daraus sind:
- Durch virtuelle Threads ist reactive Programming in Java nicht mehr nötig.
- Umdenken: Kein Pooling mehr nötige
- x Million virtuelle Threads sind kein Problem
- Bei Dateisystemzugriffen gibt es dier Herausforderungen der zusätzlichen Carrier Threads
Entscheiden oder nicht entscheiden! Das ist die (agile) Frage!
Claudia Geiger und Max Becker haben in ihrem Vortrag darüber gesprochen das wir am Tag ca. 20000 Entscheidungen treffen. Die meisten davon umbewusst. Um wichtige Entscheidungen in Organisationen voranzutreiben schlagen Sie ein Decision Canvas vor:
Databaseless Java In-Memory Data Processing
Der letzte Vortrag des Tages von Markus Kett war für mich auch der spannendste. EclipseStore ist ein Datenbankersatz für Java der Objekte auf einem Filesystem oder Cloudstore speichert.
Das Versprechen ist: hohe Performance, hohe Kostenersparnisse in der Cloud und eine einfache Implementierung. Dafür ist aber ein Paradigmenwechsel bei der Anwendungsentwicklung nötig.
EclipseStore klingt wirklich sehr vielversprechend und ich möchte es in kürze mal bei einem internen Projekt ausprobieren.