Event Sourcing in a Highly Distributed Environment

Event sourcing is a data management strategy that stores changes to a data model rather than just the model's current state. It uses an append-only event log to ensure zero data loss. By replaying events from the log, you can establish the current state of the model.
These data integrity and replay benefits make event sourcing a useful technique for dealing with intermittently connected mobile devices. It also enables client applications to access and update data in a distributed environment without losing any updates. In this presentation I share my experience with event sourcing in a globally distributed web application. We use the technique to share data models between mobile and web-based clients of an online clinical decision support system. The application runs on multiple data centers around the world. A distributed event store, using the NoSQL database Couchbase, tracks article views and bookmark related events. Once in the database, the events can be queried to derive statistics about the user interactions or replayed to build read models, i.e., application state.The solution accounts for intermittently connected mobile devices, data replication across data centers, network partitions, lost updates and mobile device synchronization.


Popular posts from this blog

Run Couchbase Server on Linode: Part 1

Run Couchbase Server on Linode: Part 2

Run Couchbase Server on Linode: Part 3