SlideShare a Scribd company logo
Event Sourcing your AngularJS applications
Event-Sourcing your
AngularJS applications
Who am I?
• Maurice de Beijer
• The Problem Solver
• Freelance developer
• DevelopMentor instructor
• Twitter: @mauricedb
• Web: http://www.TheProblemSolver.nl
• E-mail: maurice.de.beijer@gmail.com
Event Sourcing your AngularJS applications
Data Storage Maturity Model
3 - Event Sourcing
2 - CQRS
1 - Structured storage
0 – Data Dump
Data Storage Maturity Model
3 - Event Sourcing
2 - CQRS
1 - Structured storage
0 – Data Dump
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
(Semi) Structured storage
Database CRUD Server HTTP Browser
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Data Storage Maturity Model
3 - Event Sourcing
2 - CQRS
1 - Structured storage
0 – Data Dump
Command Query Responsibility Segregation
Command Query Responsibility Segregation
Database
Query Service
Browser
Command
Service
Read
Update
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Data Storage Maturity Model
3 - Event Sourcing
2 - CQRS
1 - Structured storage
0 – Data Dump
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing
Projections
Database
Query
Service
Browser
Command
Service
Read
UpdateEvents
Database
Projector
Service
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Your feedback is important!
Scan the QR Code and let us know via the TechDays App.
Laat ons weten wat u van de sessie vindt via de TechDays App!
Scan de QR Code.
Bent u al lid van de Microsoft Virtual Academy?! Op MVA kunt u altijd iets
nieuws leren over de laatste technologie van Microsoft. Meld u vandaag aan
op de MVA Stand. MVA biedt 7/24 gratis online training on-demand voor IT-
Professionals en Ontwikkelaars.
Event Sourcing your AngularJS applications

More Related Content

PPTX
TechDays 2015 The Azure Sightseeing Tour
PPTX
How to deploy a Private Cloud based on WAP and Nutanix
PPTX
Deploying Web-Scale Private Clouds using the Azure Pack and Nutanix Web-scale...
PPTX
Microservices in Azure
PPTX
Serverless: The future of application delivery
PDF
VMUG St Louis - SDN in the Real World
PPTX
Building a Web Frontend with Microservices and NGINX Plus
PPTX
MicroServices on Azure
TechDays 2015 The Azure Sightseeing Tour
How to deploy a Private Cloud based on WAP and Nutanix
Deploying Web-Scale Private Clouds using the Azure Pack and Nutanix Web-scale...
Microservices in Azure
Serverless: The future of application delivery
VMUG St Louis - SDN in the Real World
Building a Web Frontend with Microservices and NGINX Plus
MicroServices on Azure

What's hot (20)

PPTX
Micro Services in .NET Core and Docker
PDF
Cloudcamp Chicago Nov 2104 Fintech - John Downey's "A Hypothetical Public Clo...
PDF
Vietnam Global Azure Bootcamp 2019 - Security on Azure Kubernetes Services wi...
PDF
Containers on Microsoft Azure
PPTX
Automating Cloud Cluster Deployment: Beyond the Book
PPTX
Glass fish performance tuning tips from the field
PPTX
High performance java ee with j cache and cdi
PDF
MongoDB World 2019: Mastering MongoDB in Kubernetes
PDF
Kubernetes Visualization-and-Monitoring-using-Weave-scope
PPTX
Cnam cours azure iaas
PDF
Scotland VMUG - My Journey to Full Stack Engineering
PPTX
Cnam cours azure cloud services
PPTX
The 7 deadly sins of micro services
PDF
Best Practices for couchDB developers on Microsoft Azure
PDF
ContainerDays NYC 2016: "Containers in Azure: Understanding the Microsoft Con...
PPTX
Govern your guest accounts – How to use Azure Identity Governance
PDF
Go, Swarm and DevOps vs The Mighty Monolith
PPTX
Java in azure dev ops
PDF
Auckland API and Microservices meetup
PPTX
PhpRain- Build better web
Micro Services in .NET Core and Docker
Cloudcamp Chicago Nov 2104 Fintech - John Downey's "A Hypothetical Public Clo...
Vietnam Global Azure Bootcamp 2019 - Security on Azure Kubernetes Services wi...
Containers on Microsoft Azure
Automating Cloud Cluster Deployment: Beyond the Book
Glass fish performance tuning tips from the field
High performance java ee with j cache and cdi
MongoDB World 2019: Mastering MongoDB in Kubernetes
Kubernetes Visualization-and-Monitoring-using-Weave-scope
Cnam cours azure iaas
Scotland VMUG - My Journey to Full Stack Engineering
Cnam cours azure cloud services
The 7 deadly sins of micro services
Best Practices for couchDB developers on Microsoft Azure
ContainerDays NYC 2016: "Containers in Azure: Understanding the Microsoft Con...
Govern your guest accounts – How to use Azure Identity Governance
Go, Swarm and DevOps vs The Mighty Monolith
Java in azure dev ops
Auckland API and Microservices meetup
PhpRain- Build better web
Ad

Viewers also liked (8)

PPTX
From zero to hero with Docker
DOC
Civilicultura
PPTX
PPTX
Beveiliging en REST services
PPTX
ASP.NET vNext at the DotNed users group
PPTX
Event-Sourcing your AngularJS applications
PDF
Is React reactive?
PDF
The productive developer guide to React
From zero to hero with Docker
Civilicultura
Beveiliging en REST services
ASP.NET vNext at the DotNed users group
Event-Sourcing your AngularJS applications
Is React reactive?
The productive developer guide to React
Ad

Similar to Event Sourcing your AngularJS applications (20)

PPTX
Event sourcing your AngularJS applications
PPTX
Event Sourcing your Angular and React applications
PPTX
React - Redux applications & Event Sourcing
PPTX
Introduction to Azure monitor
PPTX
Event-Sourcing your React-Redux applications
PDF
OSA Con 2022 - Building a Real-time Analytics Application with Apache Pulsar ...
PDF
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
PPTX
Event-Sourcing your React-Redux applications
PPTX
Event-Sourcing your React-Redux applications
PPTX
Event-Sourcing your React-Redux applications at HolyJS 2016
PDF
Blueprint Series: Architecture Patterns for Implementing Serverless Microserv...
PDF
Microservices
PPTX
Directions Asia Unlocking New Integration Potential for d365 BC with Event ...
PDF
Microsoft certified azure developer associate
PPTX
Event sourcing your React-Redux applications
PPTX
Event-Sourcing your React-Redux applications - Maurice de Beijer - Codemotion...
PPTX
NVS_Sentinel
PPTX
Desenvolvimento .NET no Linux. Veja porque a Microsoft ama Linux e Open Source
PPTX
Mining software vulns in SCCM / NIST's NVD
PDF
Microservices in Java and Scala (sfscala)
Event sourcing your AngularJS applications
Event Sourcing your Angular and React applications
React - Redux applications & Event Sourcing
Introduction to Azure monitor
Event-Sourcing your React-Redux applications
OSA Con 2022 - Building a Real-time Analytics Application with Apache Pulsar ...
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
Event-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applications at HolyJS 2016
Blueprint Series: Architecture Patterns for Implementing Serverless Microserv...
Microservices
Directions Asia Unlocking New Integration Potential for d365 BC with Event ...
Microsoft certified azure developer associate
Event sourcing your React-Redux applications
Event-Sourcing your React-Redux applications - Maurice de Beijer - Codemotion...
NVS_Sentinel
Desenvolvimento .NET no Linux. Veja porque a Microsoft ama Linux e Open Source
Mining software vulns in SCCM / NIST's NVD
Microservices in Java and Scala (sfscala)

More from Maurice De Beijer [MVP] (20)

PPTX
Full-stack App in half a Day: Next.js 15 Development Bootcamp
PPTX
Production-ready Next.js App with Cursor AI
PPTX
Building Robust Web Applications with Test-Driven Development and Playwright:...
PDF
Mastering React Server Components and Server Actions in React 19
PPTX
Practice TypeScript Techniques Building React Server Components App
PPTX
A foolproof Way to Estimate a Software Project
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
PPTX
Build reliable Svelte applications using Cypress
PPTX
Building Reliable Applications Using React, .NET & Azure
PPTX
Concurrent Rendering Adventures in React 18
PPTX
Building reliable applications with React, C#, and Azure
PPTX
Building large and scalable mission critical applications with React
PPTX
Building Reliable Applications Using React, .NET & Azure
PPTX
Why I am hooked on the future of React
PPTX
Building reliable web applications using Cypress
PPTX
Getting started with React Suspense and concurrent rendering
PPTX
React suspense, not just for Alfred Hitchcock
PPTX
From zero to hero with the Reactive extensions for JavaScript
PPTX
Why I am hooked on the future of React
PPTX
The new React
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Production-ready Next.js App with Cursor AI
Building Robust Web Applications with Test-Driven Development and Playwright:...
Mastering React Server Components and Server Actions in React 19
Practice TypeScript Techniques Building React Server Components App
A foolproof Way to Estimate a Software Project
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Build reliable Svelte applications using Cypress
Building Reliable Applications Using React, .NET & Azure
Concurrent Rendering Adventures in React 18
Building reliable applications with React, C#, and Azure
Building large and scalable mission critical applications with React
Building Reliable Applications Using React, .NET & Azure
Why I am hooked on the future of React
Building reliable web applications using Cypress
Getting started with React Suspense and concurrent rendering
React suspense, not just for Alfred Hitchcock
From zero to hero with the Reactive extensions for JavaScript
Why I am hooked on the future of React
The new React

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Modernizing your data center with Dell and AMD
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
cuic standard and advanced reporting.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
NewMind AI Monthly Chronicles - July 2025
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
MYSQL Presentation for SQL database connectivity
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Advanced Soft Computing BINUS July 2025.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Modernizing your data center with Dell and AMD
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
CIFDAQ's Market Insight: SEC Turns Pro Crypto
cuic standard and advanced reporting.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

Event Sourcing your AngularJS applications

Editor's Notes

  • #5: Why? I want to create better applications Most applications store the current state http://www.flickr.com/photos/celestinechua/9661913835
  • #6: Levels of working with data Create Read Update Delete Command Query Responsibility Segregation Event-Sourcing
  • #7: Data dumps and CRUD actions against database is very similar as seen from the front end
  • #8: Most applications store the current state If you are lucky there is an audit trail of sorts http://www.flickr.com/photos/ell-r-brown/4011702143
  • #9: http://www.flickr.com/photos/willowbl00/12459211923
  • #10: http://www.flickr.com/photos/sukiweb/10223596316
  • #11: The server is often just a simple gateway with just some validation logic
  • #12: $resource and noSQL database make CRUD applications really easy
  • #13: There is nothing wrong with a CRUD application if the problem domain is simple http://www.flickr.com/photos/juhansonin/5144239690
  • #14: Command Query Responsibility Segregation
  • #15: CQRS = Command Query Responsibility Segregation Use a different model to update information than the model you use to read information http://www.flickr.com/photos/usnavy/8220344431
  • #16: Still storing just the current state Database structure is often normalized and optimized for updating Most application read far more frequently then update
  • #17: Commands should be modeled after business actions A business user can understand command names and have a reasonable expectation of the outcome http://www.flickr.com/photos/micahdowty/4630801442
  • #18: We are stil storing only the current state No trace of how we got there http://www.flickr.com/photos/danrocha/15602018982
  • #19: Event sourcing doesn’t depend on CQRS but that structure is often used.
  • #20: Event Sourcing is a very old idea that has become popular again over recent years. Events provide insight into how the system came to be in its current state http://www.flickr.com/photos/dragontomato/5174914835
  • #21: Domain Event is something that has happened in the past The result of a Command to change something Very similar to the audit trail in a database http://www.flickr.com/photos/lendingmemo/11747440176/
  • #22: No longer storing the current state but all event leading up to it The current state is a left fold of all events The projection parts are not really part of ES but CQRS and usually combined
  • #23: Events are never erased or updated An append only model http://www.flickr.com/photos/horiavarlan/4263326117
  • #24: Events are projected out to the read model Observed facts = events Derived facts = projections http://www.flickr.com/photos/fotnmc/7172465908
  • #25: Eventual consistency both good and bad Better scalability Harder to program the UI Block until done Fake it on the client Use long polling or push notifications http://www.flickr.com/photos/epsos/5732013768
  • #26: Event Sourcing adds complexity Don’t do it where it doesn’t make sense It’s perfectly fine to use CRUD for static reference and ES for domain in the same app http://www.flickr.com/photos/10912969@N03/2046600021/
  • #27: Sample application: https://github.com/mauricedb/Movies-GES Main technologies used: https://angularjs.org/ http://geteventstore.com/ http://redis.io/ http://www.asp.net/ https://www.flickr.com/photos/kevandotorg/6229660191
  • #28: More info: Martin Fowler: http://martinfowler.com/eaaDev/EventSourcing.html Greg Young: http://goodenoughsoftware.net/ Daniel Whittaker: http://danielwhittaker.me/tag/event-sourcing/ João Bragança: https://github.com/thefringeninja/derp.inventory Damian Hickey: http://dhickey.ie/?tag=/Event-Sourcing https://www.flickr.com/photos/stevendepolo/4582437563/