You understand Event Sourcing and CQRS but are you ready for the difficult, complex edge cases in your domain?
You’re a developer in a .NET/SQL Server shop. Your team has used Domain-Driven Design in the past with both success and failure. You have a new project. It’s complex - it has requirements that are new to your team and the pressure is on…
- It as a significant impact on the competitive advantage of the business
- You’ll need to orchestrate really complex business processes
- Failures are inevitable, but they cannot disrupt the business
- If something does fail, Accounting wants audit logs
- The Executive Team is going to be watching your every move, you won’t be able to dodge them with fancy jargon
- All departments will need finely-tuned reporting. They’ll need temporal data, multi-dimensional analytics, fast and responsive access to the data in the BI tools that they’re used to
You know how Event Sourcing and CQRS can help you hit these complex requirements. So you bring it up to the rest of your team. They start asking you in-the-weeds questions… your face turns red… you have no idea how to answer them:
- Why does X rule even exist? When can I break it?
- We need to look at the Customer’s old orders to give them a discount if the Products were ordered before… how would we even do that?
- Where’s the right place to get X data? Are we allowed to get it from the Read Model?
- Why would we use a Value Object for an Identifier? What’s wrong with
int
orGuid
?- How do we pass events from an Aggregate Root to its child Entities?
- Aggregate A will need info from Aggregate B and validate itself against the state of Aggregate C, how are we going to do that?
You hear whispers… “Nick’s on another hype train, that’s just what he does…“
“I’ll get back to you” you say, frantically digging through mailing lists and Slack channels for nuggets of wisdom that you can pull together to answer your questions.
These sources are active, but they aren’t organized in the way you need them - they’re full of questions from people at all kinds of crossroads on their learning path for DDD/CQRS/ES. You feel behind-the-curve…
“Do I really need to re-read the Blue Book for the 5th time?” you ask yourself, “I barely made it through the first 4 times!”
Even if you have all the answers about Event Sourcing and CQRS fundamentals - you don’t have any sample code in .NET and SQL Server to validate/invalidate your assumptions, or even to just try something out that’s specific to your domain.
You need a proof-of-concept
It’d be great if you could open up a proof-of-concept project so the team and you could dig deep and answer questions together. But, you need to see familiar code with a detailed walkthrough to even get started.
Show that you know how to solve the right problems with the right patterns
Imagine being the only one who has the expertise to get your team into an event-driven mindset, ready to knock any complex business initiative out of the park?
What if, when you brought up Event Sourcing and CQRS as a viable solution and you’re asked to “show us the code” your answer was “sure, gimme a sec!”
What if you had an organized reference to use as a starting point. And what if this reference was complete with tests and open source building blocks that you could use to apply Event Sourcing and CQRS in your own domain?
Imagine having a sample project that you can use to solidify your grasp on DDD/CQRS/ES fundamentals in .NET using SQL Server. You could get an event-sourced, domain-driven app off the ground and running quickly so you could start exploring your unique domain.
What if you could gain all of this now, from the comfort of your own desk?
Don’t go it alone
Learning what Domain-Driven Design, Event Sourcing, and CQRS are is one thing, but this is just the start to a potentially long, lonely, and individual journey. But - it doesn’t have to be this way…
Introducing: Event Sourcing and CQRS with .NET Core and SQL Server
Kick off your journey on the right foot with my book Event Sourcing and CQRS with .NET Core and SQL Server. Apply what you’ve learned about DDD/CQRS/ES in a real sample domain - First Pop Coffee Co., a custom roast-to-order coffee business.
Learn how to use open source libraries and tools to write an event-sourced, domain-driven application in .NET Core and SQL Server. Write specs that test your event-sourced domain model. Look deeply into how to take advantage of event-based persistence using SQL Server.
Follow along with me
Let’s set ourselves up to be able to explore those deep questions about event-sourced Domain Models with real code. All you need to do is buy the book, crack open the sample project, and follow the walkthrough as we piece together a .NET Core and SQL Server project that uses Event Sourcing and CQRS.
Option #1: The Bundle - $59
In my first book: Applying Domain-Driven Design with Event Sourcing and CQRS, I took you through the strategic design process with EventStorming.
In this book, we’re turning the result into a production-worthy application. Since these books work together, I’m offering a bundle for a limited-time price of $59.
What you get in The Bundle:
- Event Sourcing and CQRS with .NET Core and SQL Server
- PDF, EPUB, MOBI formats
- Full sample project
- Applying Domain-Driven Design with Event Sourcing and CQRS
- PDF, EPUB, MOBI formats
- Full sample project
Option #2: Just the Book - $39
What you get with Just the Book:
- Event Sourcing and CQRS with .NET Core and SQL Server
- PDF, EPUB, MOBI formats
- Full sample project
FAQ
Who is this book for?
This book is for developers who are familiar with Domain-Driven Design, CQRS, and Event Sourcing but are struggling with getting started with structuring the project, finding the right pieces, fitting those pieces together, and making sure the pieces are testable and maintainable. It’s not a book for experts in this space, but experts who are needing to show non-experts some of the basics of these patterns can use this book to help beginners wrap their head around the big picture.
I don’t like the way you’re doing X…
That’s ok. This book isn’t going to be a one-shot-deal. Just like our understanding of architecture is constantly developing, so will future releases of this book. Buying the book entitles you to all future releases. If you have dire concerns about what I’m saying, please just let me know directly via email at nick@nick-chamberlain.com or any other appropriate channel. I will be glad to discuss, change my mind, meet a new friend in the process.
This book is for a beginner/intermediate who is struggling. Behind the scenes of my writing, I research these struggles endlessly. My goal is simple - to share the knowledge that I have to help others who are just a day or more behind me.
You didn’t go through any “build vs buy” or any structured decision making around the appropriateness of Event Sourcing and CQRS for this domain, you just jumped straight into the code.
My first book in this series: Applying Domain-Driven Design with Event Sourcing and CQRS spends the majority of time talking about how First Pop Coffee’s unique requirements warrant these patterns. I’m offering “The Bundle” which includes this first book for you to get a sense of why the additional complexity here is warranted.
Why don’t you cover Process Managers?
Process Managers are a topic under the umbrella of DDD/CQRS/ES that deserve their own in-depth examination. This book helps us get to the point where we are ready to talk about Process Managers as they relate to a real domain model. I would like to dedicate much more to this topic in later content so stay tuned.
Can I run the sample code on Linux?
I plan to ship another release of the sample project with a full suite of build scripts with Dockerization, test automation, and release automation for the sample project in a Linux environment. I’m open to contributions as well :) I will be adding content to the book that describes the continuous integration setup in detail.
Can you help my team do this in production?
Sure! Head over to my consulting page or contact me via email (nick@nick-chamberlain.com) and let me know how I can help!