CQRS in the small with Java Records and jOOQ

SIMON MARTINELLI

Programming Architect

72 Services LLC

Simon Martinelli is a Java Champion and an Oracle ACE Associate, and he received the Vaadin Community Award in 2021 and 2022 due to his commitment to the Java and Vaadin communities. His current interest is increasing the efficiency of full-stack development with Java. He regularly shares his knowledge in articles, speaks at international conferences, and writes his blog: https://martinelli.ch

He owns 72 Services LLC and has worked as a software architect, developer, consultant, and trainer for three decades, especially in the Java Enterprise environment. Besides his work, he has been a lecturer at the Bern University of Applied Sciences BFH and the University of Applied Science Northern Switzerland FHNW for modern architecture and integrating distributed systems and persistence technologies with Java and DevOps since 2007. He also served as an expert group member of JSR-352 Java Batch and JSR-354 Money and Currency.

SIMON MARTINELLI

Programming Architect

72 Services LLC

Abstract

Command Query Responsibility Segregation (CQRS) is a proven design pattern that enables the clear separation of data changes (commands) and data queries (queries). This separation allows each of these responsibilities to be scaled and optimized independently. An essential question in the application of CQRS is whether two separate data stores are necessarily required or whether CQRS can also be used effectively to keep data in a single database while still structuring the application code more efficiently and optimizing the data access.

In this talk, we will deepen the understanding of the practical implementation of the CQRS principles. We use jOOQ, a type-safe SQL query library, as our persistence layer and model both the query and command models using Java Records. Using a concrete example application, we demonstrate how the theoretical foundations of CQRS can be applied in practice and how this affects the design of applications and improves the data access performance.

Stay up to date

* indicates required

We use Mailchimp as our marketing platform. By clicking above to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.

You can change your mind at any time by clicking the unsubscribe link in the footer of any email you receive from us, or by contacting us at [email protected]