Let's talk about CQRS & Event Sourcing
Another great meet up from Barcelona Java User Group. Oscar Farga highlights key points from Adrian Florea's talk on CQRS & Event Sourcing techniques applied to web applications.
The Barcelona Java User Group held a meet up recently on November 10th at our office in Barcelona. It featured Adrian Florea's talk about CQRS (Command Query Responsibility Segregation).
Adrian is a seasoned software developer with noteworthy experience, and a personal friend of our colleague Miklos Csere. Miklos asked Adrian to do this talk, along with our former colleague and organizer fo BCNJUG, Jonathan Vila.
CQRS is an approach that has been around for a while already, although not very popular.
The main idea behind it is to split the conceptual model of our application into the two types of actions that we perform against it. The first are Commands, which change the state of the system, and Queries, which are views on the state of the system.
The advantages of this approach are:
- Separate, independent optimization.
- Increased security.
- Easier scalability.
Event sourcing, on the other hand, changes what data we store from our applications. While in the classical approach we store the State of the system, the proposal is to store the sequence of Events that led the system to that state.
Some of the advantages of Event Sourcing, include:
- Implicit, reliable audit system.
- Time machine capabilities (we can go back to a determinate state).
- Ability to answer requests not yet foreseen during the initial dev phase.
These techniques fit very well to the development of enterprise class web applications and may be applied with different technologies.
In my opinion, they encourage simplicity and separation of concerns, which have proved to be key factors in the success of software development and maintenance.
We were very proud to host this event and look forward to more collaborations with BCNJUG building up the developer community in Barcelona!
Make sure to check out the full talk video here:
CQRS - Event Sourcing by Adrian Florea