As our applications grow in size and functionality, it can become harder and harder to figure out what functionality belongs in what location. Most web applications use the CRUD (Create Read Update Delete) pattern in how it organizes accessing the application's data. In many cases, this encourages our controller objects to get larger and larger, making maintenance and testing more difficult. The required dependencies increase in size, and the scope and it get harder to debug when things go wrong.

The Command Query Responsibility Segregation (CQRS) pattern is a different way of organizing how your application interacts with it's data and helps you keep your reads away from your writes.

In this talk Chris shows how he took a tangled mess of a PHP application that has been in use for more than a decade and used CQRS to make sense of it all.


Please login to leave a comment

Eric Mann at 11:15 on 24 Apr 2024

Great way to introduce concepts built upon design patterns that, while they've existed and been well documented for decades, engineers still aim to reinvent.

Good to see Chris branching outside of Testing. Great talk, humorous, entertaining, and very informative. Loved seeing actual code in the slides to demonstrate the pattern principles. Excellent explanations of a few design patterns.

Myles Hyson at 10:31 on 25 Apr 2024

Lots to think about with this talk. Was already on the small, CRUD only controllers train. Didn't know controllers could be even smaller! Gonna experiment implementing this when I get back.

Joanna Kus at 14:11 on 25 Apr 2024

Chris is an engaging speaker. Learned a lot and gained new points to jump off of to further my learning of PHP. Will be researching CQRS further.