Event Sourcing a Small Library

Whether you want to keep track of a tiny library or your friends borrowing from your bookshelf, event sourcing can help you collect where your books are going. When you are ready, the simple check in and check out events can build reports of what books need to be returned, or where a book may have traveled. We will use this simple project to navigate the data structures in event sourcing and show how you may use event sourcing in your next8project.

  1. Triangle PHP, March 2018
  2. Longhorn PHP, April 2018

Hey, Boss, Event Sourcing Could Fix That!

Our application has so much going on! Slow page loads and a large legacy codebase make developers feel stuck between a rock and a hard place. In this session, we will explore a strategy to add a modern codebase alongside the legacy code, allowing them to run simultaneously until you replace it. We will discuss common legacy problems like complex database queries causing slow downs and large reports that take so long to load, users must wait instead of analyzing the data. As our system has grown, we may need to separate our application into distinct parts and pass relevant information between them. Or maybe we have two distinct codebases already and each codebase is affected by the other’s changes in ways we didn’t expect. We will examine how to add Event Sourcing and CQRS to these pain points and throw away that legacy spaghetti!

  1. PHP Srbija, May 2018
  2. Southeast PHP, August 2018
  3. Explore DDD, September 2019 (slides) (video)
  4. DDD Europe, February 2020

Pulling Up Your Legacy App By Its Bootstraps

Your mission, should you choose to accept it, is to support an application built on an older framework. Refactoring isn’t an easy option. The code is untested and nowhere near best practices or standards. In this session, we’ll talk about strategies for incorporating modern PHP coding practices to add features and functionality and retiring the older code in pieces. We’ll review specific examples and code from a real project where we bootstrapped a legacy application that needed a lot of work to be helpful to its users and simpler for developers to maintain. We’ll talk about strategies to leave the existing code in place until the new code is ready to replace it in whole or in pieces.

  1. Triangle PHP, March 2016
  2. NCSU Campus Developer Group, April 2016
  3. Peers Conference, April 2016, (slides)
  4. Dayton PHP, May 2016, (slides) (video)
  5. Open Source Bridge, June 2016, (slides) (audio)
  6. Chapel Hill PHP, Sept 2016, (slides)
  7. Connect.tech, Oct 2016, (slides)
  8. Sunshine PHP, Feb 2017, (slides)
  9. Midwest PHP, March 2017
  10. Lone Star PHP, April 2017
  11. Madison PHP, September 2017

Status Change: Now Using Event Sourcing

Being flexible to changes in business process makes our jobs easier, and it helps our applications adapt to those changes with minimal code changes. One of the biggest adaptations in our applications has been the addition of Event Sourcing to make a note of an Event that happened in the system. With these Events, we can affect change immediately, or even later. This is most helpful in our reporting interfaces. We can build, change, and throw away our reports very easily. This is easier than our older reports being generated by large SQL queries.

  1. Midwest PHP, March 2017
  2. Lone Star PHP, April 2017
  3. PHP[tek], May 2017
  4. PHP South Coast, June 2017
  5. Pacific Northwest PHP, September 2017

What’s Your Skateboard?

User Story Mapping is a strategy where you form a team of customers, developers, and users around your project to discover the full details of your project. Your team diagrams the story of the business process and all of the events happening around it. Once you have completed discovery of these stories, your team uses strategies to view features alongside the problems they solve. It is a powerful approach that allows your team to prioritize features, based on everyone’s needs and motivations. Instead of planning our project as a building that we must build with a strong foundation, we learn to plan as if it were a vehicle. This focus delivers the Most Valuable Features to the customer by answering the question, “What’s Your Skateboard?”

  1. Madison PHP, October 2016
  2. OSCON, May 2017
  3. Workshop @ PHP[tek], May 2017
  4. We Rise, June 2017
  5. Workshop and Talk @ Dutch PHP, June 2017
  6. php[world], November 2017