All aboard the Service Bus

Robert Basic (08.Jun.2018 at 14:30, 45 min)
Talk at Dutch PHP Conference 2018 (English - US)

Rating: 4 of 5

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.

Who are you?

Claim talk

Talk claims have been moved to the new site.

Please login to the new site to claim your talk

Comments closed.


Rating: 4 of 5

08.Jun.2018 at 19:08 by Hans Dubois (5 comments) via Web2 LIVE

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.

Rating: 3 of 5

09.Jun.2018 at 10:35 by Onno Lissenberg (58 comments) via Web2 LIVE

Good talk.

Rating: 4 of 5

10.Jun.2018 at 11:33 by Vasileia Ftochogianni (11 comments) via Web2 LIVE

Nice talk.

Rating: 4 of 5

10.Jun.2018 at 14:22 by Gert de Pagter (9 comments) via Web2 LIVE

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.

Rating: 4 of 5

10.Jun.2018 at 16:38 by Miro Svrtan (213 comments) via Web2 LIVE

Interesting talk, speaker was really good.

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

Rating: 5 of 5

10.Jun.2018 at 17:07 by Heudon da Silva Reinaldo (11 comments) via Web2 LIVE

Great tallkkk!! Keep doing it!

Rating: 4 of 5

10.Jun.2018 at 23:09 by Ramon de la Fuente (139 comments) via Web2 LIVE

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.

Rating: 4 of 5

11.Jun.2018 at 11:10 by Peter Lindqvist (18 comments) via Web2 LIVE

Nice talk, well presented.

Rating: 4 of 5

11.Jun.2018 at 18:29 by Ronald D. (42 comments) via Web2 LIVE

Good talk, gave a nice overview

Rating: 4 of 5

11.Jun.2018 at 20:30 by Daan van den Berg (71 comments) via Web2 LIVE

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.

Rating: 4 of 5

12.Jun.2018 at 07:39 by Mathijs Corten (10 comments) via Web2 LIVE

Good talk,

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

Rating: 4 of 5

13.Jun.2018 at 00:17 by Nic Wortel (16 comments) via Web2 LIVE

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.

© 2019