We deal with complicated and complex applications on a daily basis, codebases that are filled with classes that do too many things. One design pattern that can help us with this is CQRS, Command Query Responsibility Seggregation. The idea behind CQRS is to split our models in two - the Command for writing, and the Query for reading. Applying CQRS can lead us to a more maintainable code, code that follows the SOLID principles more closely.

At the heart of CQRS lies the Service Bus - a transport mechanism responsible for dispatching our command, event, and query messages to their destinations.

This talk will give an overview of the CQRS pattern and take a closer look at the different types of service buses - command, event, and query ones. Main takeaway will be practical information on why, when, and how to use them, with emphasis on their differences. We'll also take a look at some of the PHP libraries out there that help us work with service buses like Prooph Service Bus, Simple Bus, Tactician, to name a few.


Comments are closed.

Hans Dubois at 19:08 on 8 Jun 2018

Great talk, explained the the service bus really good. Nice pace and good english.

To make it 5 points I would add a bit more emphasis on why we need to use Service busses. Maybe some examples on how this fits into the codebase.

Good talk.

Nice talk.

Before this talk i only knew a little bit about CQRS/ service bus etc, but now i got a better understanding of how it works. Talk was clear, except for one 'word avalanche' about how one command handler uses one command.

Miro Svrtan at 16:38 on 10 Jun 2018

Interesting talk, speaker was really good.

To get 5*:
- bit more engagement, I know it's a hard subject but show some passion!

Great tallkkk!! Keep doing it!

It's a good talk, very neatly packaged. Maybe just a tad too neat, I think the audience could benefit from some more examples from architecture that was improve by using a messagebus.
On the delivery side, Robert did a good job - maybe also a tad on the "neat" side, where a bit more excitement would have gone a long way.

Nice talk, well presented.

Ronald D. at 18:29 on 11 Jun 2018

Good talk, gave a nice overview

Nice talk, best explanation of the difference between command, message and query bus I've seen so far.

could use a bit more information about:
- how to make it asynchronous (even for querybus; or just say: "don't do that with querybus")
- how it relates to the symfony event dispatcher; which would you choose when.

Good talk,

Like said above, some examples why we should use a service bus would be nice :)

Nic Wortel at 00:17 on 13 Jun 2018

A nice talk to introduce the concept of service buses. I think this talk could really differentiate itself from other talks about this subject by discussing the pros and cons of different styles of commands and command handlers - for instance commands with constructors and private properties vs commands with just public properties (allowing you to easily serialize commands from input, (Symfony) forms, etc), commands with domain objects in them vs commands with just primitives (encapsulating the domain object instantiation in the command handler), etc.