View on GitHub

spring-cqrs-arch

Extension for the Spring framework using CQRS principles. It's useful to implement quickly an webapp.

Original work from @slawek.

Easy introduction and implementation of CQRS Application pattern with Spring / Spring Boot. Not sure about using this framework ? It exists at least two other more mature and more complex frameworks to implement CQRS :

This framework is different since it makes the following assumptions :

And the framework also have the following benefits :

And the framework also have the following limitations :

Documentation plan

Introduction

This module is an implementation of a software architecture model inspired from the CQRS ( link from Fowler ) model.

To quote Martin Fowler :

CQRS stands for Command Query Responsibility Segregation. It's a pattern that I first heard described by Greg Young. At its heart is the notion that you can use a different model to update information than the model you use to read information. For some situations, this separation can be valuable, but beware that for most systems CQRS adds risky complexity.

CQRS Architecture

The idea is the following : the software functionalities are split between the read and the write accesses made by the user.

Advantages

The strongest advantages of this architecture are - according my experience - :

Cleancode

Some bad smells often found in Spring / Java Web applications are avoided with this model.

By instance :

Implementation model for an web application using CQRS principles.

Scope

This module is offering basically the Command architecture principles, and a way to send events.

For the query part, I recommend a progressive approach :

Module architecture design

Credits and thanks here : Wiki