> Markdown version of [/videos/688-implementing-an-event-sourcing-strategy-on-azure?t=820](https://www.wearedevelopers.com/videos/688-implementing-an-event-sourcing-strategy-on-azure?t=820). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Implementing an Event Sourcing strategy on Azure Are CRUD bottlenecks limiting your application's scale? Discover how to architect an append-only event sourcing strategy on Azure to unlock infinite scalability and lightning-fast materialized views. - **Speakers:** Eldert Grootenboer, Olena Borzenko-Turianska - **Event:** World Congress 2023 - **Published:** September 27, 2023 - **Duration:** 32:03 - **URL:** https://www.wearedevelopers.com/videos/688-implementing-an-event-sourcing-strategy-on-azure ## Summary Traditional CRUD databases often struggle to scale to millions of users due to record locking and concurrency limitations. Event sourcing architecture overcomes these bottlenecks by relying strictly on append-only inserts to capture state changes, making it ideal for write-heavy workloads. By treating every business action as an immutable event, organizations benefit from infinite scalability and an automatic, comprehensive audit log that preserves the complete history of an entity. At the core of this strategy, Azure Cosmos DB serves as the central event store, utilizing its built-in change feed to natively enable CQRS architectures. Data streaming and ingestion are handled by Azure Event Hubs, which offers seamless Kafka API integration for existing deployments. Downstream, Azure Event Grid performs discrete event routing, while Azure Service Bus manages intent-driven messages using a peek-lock pattern to guarantee reliable processing without data loss. Azure Functions act as the serverless connective tissue, leveraging native triggers to execute logic without complex infrastructure overhead. A central application of this ecosystem is the creation of materialized views to optimize data retrieval. Instead of following traditional relational normalization, developers are encouraged to intentionally duplicate and pre-calculate data across different partition keys to match specific read queries. This event-driven approach ensures that downstream consumers—from billing systems to real-time warehouse dashboards—receive instant, highly performant access to data, demonstrating how modular cloud services can be stacked like building blocks to form robust application backends. **Keywords:** event sourcing pattern, azure cosmos DB, write-heavy workload scaling, append-only data storage, cosmos DB change feed, CQRS architecture, azure event hubs, kafka API integration, azure event grid, azure service bus, message peek-lock, serverless event bindings, azure functions, materialized views, database partitioning strategies, built-in audit logging ## Chapters 1. **Understanding the basics of event sourcing patterns** (00:00) — Replaying sequential events rebuilds the current state of an entity. 1. **Solving traditional database locking and scaling challenges** (02:15) — Insert-only workloads eliminate update locks and provide built-in audit trails. 1. **Scaling event sourcing systems in cloud environments** (05:20) — Cloud platforms natively support high-throughput insert operations for massive scale. 1. **Storing events using globally distributed databases** (06:15) — Multimodal document databases offer native change feeds for separation of commands and queries. 1. **Ingesting streaming data securely with managed hubs** (08:37) — Fully managed ingestion engines capture millions of stream messages per second without exposing data stores. 1. **Publishing discrete event notifications for broad consumption** (09:44) — System triggers send independent push notifications to alert external applications of status changes. 1. **Managing intent-based workloads using message queues** (10:29) — Reliable messaging queues handle explicit transactional commands and prevent data loss during processing failures. 1. **Processing event streams linearly through serverless compute** (11:19) — Native platform bindings eliminate boilerplate code when deploying reactive cloud processing units. 1. **Designing data ingestion architecture with system integration** (13:40) — Swapping connection strings migrates existing external streaming applications directly into managed cloud infrastructure. 1. **Routing discrete events to trigger independent workflows** (16:40) — Aggregating historical records uncovers the necessary operational context to execute downstream automated tasks. 1. **Options for extracting and processing historical events** (19:02) — Pulling batches, subscribing to real-time pushes, or running automated scripts determines how data gets consumed. 1. **Precalculating queries using automatic materialized views** (21:59) — Aggregating transactional data immediately upon insertion optimizes subsequent application read performance. 1. **Embracing data duplication to replace complex normalization** (25:04) — Duplicating aggregate data across distinct partition keys avoids expensive relational joins. 1. **Integrating analytical dashboards and real-time client notifications** (26:45) — Downstream applications consume preprocessed snapshots to instantly drive live analytics and interactive experiences. 1. **Benefits of adopting scalable event sourcing architecture** (27:59) — Append-only persistent stores combine natively with serverless components to securely manage extreme enterprise workloads. 1. **Handling data retention and archiving in event stores** (30:57) — Continuous changelogs naturally retain historical actions to simplify data recovery and long-term storage. ## Related Moments - [Core principles of transitioning to full event sourcing](https://www.wearedevelopers.com/videos/91-from-event-streaming-to-event-sourcing-101) (from "From event streaming to event sourcing 101") - [Transitioning from synchronous microservices to event sourcing](https://www.wearedevelopers.com/videos/168-kafka-streams-microservices) (from "Kafka Streams Microservices") - [Routing events between sources and handlers with event grid](https://www.wearedevelopers.com/videos/47-functions-triggers-using-azure-event-grids-in-azure-blob-storage) (from "Functions Triggers using Azure Event Grids in Azure Blob Storage") - [Introducing beneficial architectural patterns like event sourcing](https://www.wearedevelopers.com/videos/218-seven-myths-three-reasons-one-goal) (from "Seven Myths, Three Reasons, One Goal") - [Differentiating event streaming from true event sourcing](https://www.wearedevelopers.com/videos/163-cqrs-and-event-sourcing-without-the-pixie-dust) (from "CQRS and Event Sourcing without the pixie dust") - [Introducing data management and the shift to streaming](https://www.wearedevelopers.com/videos/538-event-messaging-and-streaming-with-apache-pulsar) (from "Event Messaging and Streaming with Apache Pulsar") ## Related Articles - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [What Are The Top Skills Required For Azure Developers?](https://www.wearedevelopers.com/magazine/77-what-are-the-top-skills-required-for-azure-developers) - [Making Data Warehouses Fast: A Developer’s Story](https://www.wearedevelopers.com/magazine/107-making-data-warehouses-fast-a-developer-s-story) - [MLops – Deploying, Maintaining And Evolving Machine Learning Models in Production](https://www.wearedevelopers.com/magazine/115-mlops-deploying-maintaining-and-evolving-machine-learning-models-in-production) ## Related Jobs - [Senior Cloud Software Architect (all genders welcome) for our Intelligent Service Operations Hub](https://www.wearedevelopers.com/jobs/ext/1693682-senior-cloud-software-architect-all-genders-welcome-for-our-intelligent-service-operations-hub) at **Rosenxt Group** - [Staff Software Engineer](https://www.wearedevelopers.com/jobs/ext/1425755-staff-software-engineer) at **GitHub** - [Senior Cloud Software Architect (all genders welcome) for our Intelligent Service Operations Hub](https://www.wearedevelopers.com/jobs/ext/1284556-senior-cloud-software-architect-all-genders-welcome-for-our-intelligent-service-operations-hub) at **Rosenxt Group** - [Senior Software Engineer, Data](https://www.wearedevelopers.com/jobs/48273-senior-software-engineer-data) at **Sportradar Media Services GmbH** - [Senior Cloud Native Solution Architect (all genders welcome) - Kubernetes, CNCF, MlOps](https://www.wearedevelopers.com/jobs/ext/101488-senior-cloud-native-solution-architect-all-genders-welcome-kubernetes-cncf-mlops) at **Rosenxt Group** - [Principal Software Engineer, Enterprise AI Platform](https://www.wearedevelopers.com/jobs/ext/1467292-principal-software-engineer-enterprise-ai-platform) at **GitHub**