The CQRS pattern enables you to build highly scalable, distributed and event-driven applications. Microsoft Azure contains all the serverless building blocks you need to take advantage of the CQRS pattern. In this session, we’re going to transform a monolithic web app into a modern cloud application, that easily handles peak loads and offers great flexibility. Expect architectural guidance, cost-effective designs and live demo’s.
3. Nice to meet you
Toon Vanhoutte
Lead Architect @ Codit Belgium
Microsoft Azure MVP
@toonvanhoutte
toonvanhoutte.wordpress.com
www.linkedin.com/in/toon-vanhoutte
4. Who we are
Customers Entities
2000 Belgium
2004 France
2013 Portugal
2016 Switzerland
2016 UK
2016 The Netherlands
2017 Malta
150
worldwide
33. CQRS is a proven design pattern!
It exists in many different variations
Azure Function Proxy
SQL Database
QueryCommand
Sentinet
SQL Database
QueryCommand
Azure API Mgmt
SQL Database
QueryCommand
Cache
34. Lessons learned
Azure Functions Azure Event Grid
Consumption plan results
in cold starts, also for
function proxies!
Solution:
• Keep it warm (5 min)
• App Service Plan
• Pre-compiled
functions
Event Grid puts
responsibility for
sequencing at receive side!
Solution:
• Use it wisely
• Consider Azure Service
Bus if sequencing is
required
35. Architectural Advise on CQRS
Do not overengineer!
Performance
Flexibility
Scalability
Advantages
Idempotence
Resiliency
Eventual Consistency
Challenges
Complexity
Maintenance
Monitoring
Disadvantages
Apply CQRS carefully on specific parts of the solution!
36. Thank you!
Keep in touch.
@toonvanhoutte
toonvanhoutte.wordpress.com
www.linkedin.com/in/toon-vanhoutte
Editor's Notes
From a DDD perspective, where the business complexity requires two separate models for read and write models. Eg one database with write against database tables and reads done based on views that are optimized for the UI