Implementing Event Sourcing and CQRS in PHP.

Learn how to future-proof your data with Event Sourcing and make your PHP application more nimble with CQRS.


"Introduction to Event Sourcing and CQRS with PHP" is a book that takes you on a journey introducing Event Sourcing and CQRS principles to traditional PHP applications.

Learn what Event Sourcing is and how it can future-proof your application by keeping track of every change made to your model. Find out what CQRS (Command-Query Responsibility Segregation) is and how it can make your application more flexible.


Just watched Beau's Nomad PHP talk on Event Sourcing and CQRS, great talk. Filled some conceptual knowledge gaps for sure!

Sam Greenwood, Developer at Hostworks and aspiring architecture astronaut.


About the author

Hi! I'm Beau Simensen, Co-Founder and Software Architect for Monii (monii.com, monii.io) and co-host of That Podcast (@thatpodcast, thatpodcast.io). I created Sculpin (sculpin.io) and helped create Stack PHP (stackphp.com).

I found Domain-Driven Design in 2008 and it forever changed the way I saw software. Over the last year and a half I've been invited to present workshops on Event Sourcing and CQRS at conferences in the United States of America, the Netherlands, Belgium and Spain.


Frequently Asked Questions

Will you discuss Event Sourcing and CQRS framework X?

This book focusses on more-or-less pure PHP Event Sourcing and CQRS implementations. While the book may mention or provide adapters for some off-the-shelf Event Sourcing and CQRS PHP frameworks a lot of time will not be spent going into detail on them.

How much focus is there on strategy versus tactics?

Seasoned Domain-Driven Design veterans may be hoping to see a lot of focus spent on strategy. If you are looking for anything more than an in-depth look into the tactics of bringing Event Sourcing and CQRS to your PHP application you are going to be disappointed.

Don't get me wrong! I think that strategy is hugely important! For the purpose of this book, however, the strategy behind the examples are all assumed to be business correct and very little discussion will revolve around how modeling decisions were made unless it relates directly to changes in the tactical implementation.

Do I need to be a DDD expert?

NO! Though knowledge of DDD (Domain-Driven Design) and its tactical patterns may help.

What if I have other questions?

Email me! beau@beau.io