In this talk, Dennis will take a practical example of a simple domain and gradually introduce functional requirements to see how the principles behind Domain-Driven Design affect the way your entities are going to protect the business rules.
Right after that, Dennis will introduce some real-world non-functional requirements and see if and how Event Sourcing and/or CQRS may or may not help to accomplish those. Then he’ll talk about how to actually build a system based on this architecture style.
Dennis will try to answer questions like how to deal with transactional boundaries within and outside the domain. How to build projections that are autonomous, reliable and self-supporting. How to deal with upgrades and blue-green deployments. But also on how to handle bugs, design mistakes and crashing projections. Having made a lot of these mistakes himself over these years, Dennis will share his current thoughts and opinions about this. Since the .NET space has a pretty rich set of open-source projects to support this, the examples and code will be .NET. But the concepts are universal, so don't let that scare you off.
About the speaker
Dennis is a veteran architect in the .NET space with a special interest in writing clean code, Domain Driven Design, Event Sourcing and everything agile. He specializes in designing enterprise solutions based on the .NET technologies as well as providing coaching on all aspects of designing, building and maintaining enterprise systems. He is the author of www.fluentassertions.com, a very popular .NET assertion framework, www.liquidprojections.net, a set of libraries for building Event Sourcing architectures and he has been maintaining coding guidelines for C# on www.csharpcodingguidelines.com since 2001. He also keeps a blog on his everlasting quest for better solutions at www.continuousimprover.com. You can reach him on twitter through @ddoomen.
We will meet at Google in the FRC2 Building in the Libra Tech Talk room.
323 Fairchild Dr, Mountain View, CA 94043 (https://maps.google.com/?q=323+Fairchild+Dr,+Mountain+View,+CA+94043&entry=gmail&source=g)
6:30 Food and Networking
7:00 - 7:45 Presentation - Part I
7:45 - 8:00 Short break
8:00 - 8:45 Presentation - Part 2
8:45 - 9:00 Wrapping up
Food will be provided before the main presentation (while it lasts).