Event Sourcing in a Highly Distributed Environment
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.