Confession time.I really work at staying up to speed on the world of technology. I actually do what David Maister suggests in his brilliant screed on standards, which is to read the trade journal of the clients I serve, which is DHH’s Twitter feed right?Sort of kidding; I read more widely than that since there is no single trade journal of custom software development or consulting. I’m interested in both the very cool specifics of custom software and the big picture of where tech is headed and what implications the twists and turns of that journey have for y’all.Anyway, I work at keeping up on the world of software and the broader world of tech, and I still get schooled all the time by clients and folks on this list about stuff I didn’t know about in those worlds.And I love this.Recently Sasha, a very impressive SaaS founder, joined The Expertise Incubator. And his SaaS is an event-sourcing platform.The emails he’s been publishing at high frequency are very, very good. And these emails are how I’ve learned what event-sourcing is.You might want to join his list!You’ll get everything from pretty technical stuff like this…
In a traditional system with a relational database, business logic can be implemented in many places. In fact, I often see some business rules being enforced at the SQL database level through database constraints and triggers, other business rules enforced at the so-called business logic layer in an application, and yet even more business rules enforced at various places where data is input into the system.Unlike what we see with traditional systems, in an event-sourced system business rules are concentrated within the Customer object (as per the example above). This object is responsible for validating every command that comes in, ensuring that the command can be applied, and then applying the command.
…to higher level stuff like the below, which helps you understand the context in which event-sourcing produces value.
Have you ever thought about how we communicate with each other?We catch up by sharing what’s new. We talk about significant events that have happened since the last time we caught up.One thing we don’t do, at least not typically, is to communicate in terms of state. What would that even look like?Say we meet up for coffee and you ask me “Hey, how are you?” and I start telling you: “Well, let me tell you. I have two cars, a house, sofa, ottoman, TV that’s turned off, TV stand with a lamp on it, large clock on the wall, a bunch of chairs, dishwasher is running, plant that’s not doing so well in the corner, some framed artwork, …”. You’d stop me before I could finish, with a worried look on your face, and ask me if I was alright.Instead, the natural response from me would be “Doing great, just bought a new dining table and wife is liking it”.You’d expect me to tell you what’s changed since the last time we talked.Event-sourcing is like that. It’s a journal of what’s changed.
Sasha is doing an impressively good job with his daily emails.If the topic is interesting to you, join his list. You’ll get a ringside seat to someone leaning out over his skis, working in public, and doing really good content marketing! And… you’ll learn a lot about event-sourcing.-P