Using event dispatchers and command buses in applications is becoming common place, but are we using them in a way that aids understanding? With the rise in popularity of Domain-Driven Design to drive meaning in applications, and our applications becoming increasingly small and "hexagonal", the concept of defining the difference between an Event and a Command is becoming more important. This talk explores using command buses and event dispatchers in combination to clearly segregate the structure, and uses an example of how to use these to create clean CQRS-based applications.
Level: All


Comments are closed.

An amazing talk. You seemed a bit nervous but there was totally no reason for that. Probably the best talk I've seen so far at this conference.

Craig Duncan at 15:26 on 15 Feb 2018

Fantastic talk, great explanations and examples that helped to communicate a complicated topic.

Liam Wiltshire at 15:33 on 15 Feb 2018

If Barney hadn't said, there is no way you'd know this was their first talk! Confidently delivered, technically detailed yet accessible - can't fault it at all!

Jessica Smith at 16:00 on 15 Feb 2018

The talk made a complicated concept easier to understand and the presentation style was brilliant. The examples were clear to follow and there was a good level of humour throughout as well. It was entertaining and engaging throughout.

Brilliant talk, making a complicated topic accessible. Feel that I need to find a project to experiment with this now.

(Love the Battlestar theme)

Excellent talk. Thought provoking *and* entertaining. This was your first-ever talk!? Incredible. Well done.

Jeremy Onion at 21:29 on 16 Feb 2018

Good insightful talk which made what could have been a complex subject digestible. Would have liked to have seen a nod to the original BSG but that might just be me showing my age!

Chris Sherry at 18:28 on 17 Feb 2018

I really enjoyed this talk, and I always love seeing a talk about how to better abstract code. Barney's explanation of the reasons why you would do this and how you go about it was very good. I was already familiar with event dispatchers, so the introduction of commands the differences to events was really handy.

Although I commend Barney for avoiding the FooBar style examples - as someone who has never seen Battlestar Galatica though I found myself at times trying too hard to understand the example subject matter and occasionally could not keep up with the explanation of the implementation.

The slides themselves need some work.

The code samples are screen captures straight out of PHPStorm and although the default PHPStorm syntax highlighting is great if you are looking at it for 7 hours a day, it's hard to read on a slide that only shows for 30 seconds, on a screen that's got stage lighting against it and being broadcast into an overflow room. I would recommend the default github style (which you can get for PHPStorm) as it is much higher contrast and white backgrounds work better for projected slides yet still familiar. There are other alternatives too, many of the speakers at this event did this well for other examples.

I'd also recommend looking at those code snippets and really thinking about how much of that code is actually needed for the point that's being made. Some slides the text size was just too small because there was a whole class of code on screen.

Thanks for speaking and well done on a very strong first talk!

Nick Shaw at 10:12 on 19 Feb 2018

Really engaging talk that explained not only how but why you might use this approach.