This guide is focused on building highly scalable, highly available, and maintainable applications with the Command & Query Responsibility Segregation and the Event Sourcing architectural patterns. It presents a learning journey, not definitive guidance. It describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world, complex, enterprise system to showcase various CQRS and ES concepts, challenges, and techniques.
The development team did not work in isolation; we actively sought input from industry experts and from a wide group of advisors to ensure that the guidance is both detailed and practical.
The CQRS pattern and event sourcing are not mere simplistic solutions to the problems associated with large-scale, distributed systems. By providing you with both a working application and written guidance, we expect you’ll be well prepared to embark on your own CQRS journey.
Dominic Betts is a principal technologist at Content Master, part of CM Group Ltd, a technical authoring and consulting company. An expert on developing applications with the Microsoft .NET Framework and Windows Azure, Dominic has produced numerous training courses, white papers, and other technical material on .NET, Windows Azure, and Microsoft BizTalk.
Julian Dominguez is a software developer on the Microsoft patterns & practices team, producing written and code-based guidance for .NET developers. He has been a contributor on several projects with this team, including Prism, Enterprise Library, and CQRS Guidance. You can find him on his blog at or on twitter @juliandominguez.
Dr. Grigori Melnik is a Principal Program Manager in the patterns & practices group at Microsoft. He leads the Microsoft Enterprise Library, Unity, Acceptance Testing Guidance, and CQRS Guidance projects. Prior to that, Grigori was a researcher, software engineer, and educator - long enough to remember the joy of programming in Fortran. His areas of expertise include agile methods, empirical software engineering, and software testing. Grigori is a regular contributor to software conferences around the world. He is a member of the IEEE Software Advisory board. Grigori holds a Ph.D. in Computer Science from the University of Calgary, Canada. Contact him at http://blogs.msdn.com/agile or follow him on twitter via @gmelnik.
Fernando Simonazzi is a software developer and architect with over 12 years of professional experience. He has been a contributor to several projects for Microsoft's patterns & practices group, including Prism v4 and several versions of the Enterprise Library.
Mani Subramanian is a software tester on the patterns & practices team. His recent projects include Enterprise Library (Windows Azure, V5), CQRS Journey, Unity, Prism 4.1. Areas he has worked on include core.net, Windows Azure and Windows Phone, BizTalk ESB, performance, security, and test management. He has 12+ years of industry experience. Prior to joining p&p, he was a developer for products that enable network security and worked as a project manager and test consultant.