Command Query Responsibility Segregation (CQRS) ist ein bewährtes Entwurfsmuster, das die klare Trennung von Datenveränderungen (Commands) und Datenabfragen (Queries) ermöglicht. Diese Trennung erlaubt die eigenständige Skalierung und Optimierung jeder dieser Verantwortlichkeiten. Eine wichtige Frage in der Anwendung von CQRS ist, ob zwingend zwei separate Datenspeicher erforderlich sind oder ob CQRS auch effektiv genutzt werden kann, um Daten in einer einzigen Datenbank zu halten, während der Anwendungscode dennoch effizienter strukturiert wird und den Datenzugriff optimiert.
In diesem Vortrag vertiefen wir das Verständnis der praktischen Umsetzung der CQRS-Prinzipien. Wir setzen jOOQ ein, eine typsichere SQL-Abfragebibliothek, als unsere Persistenzschicht, und modellieren sowohl das Abfrage- als auch das Command-Modell mithilfe von Java Records. Anhand einer konkreten Beispielanwendung demonstrieren wir, wie die theoretischen Grundlagen von CQRS in der Praxis angewendet werden können und welche Auswirkungen dies auf das Design von Anwendungen hat und gleichzeitg die Effizienz des Datenzugriffs steigert.
https://www.jug.ch/html/events/2024/cqrs_mit_modernem_java_sg.html