Conflict resolution in an event sourcing environment: Which method performs best?
The goal of this research is to see which merging method performs best in an event sourcing environment. To be able to accomplish this, a to-do application was created in which several merging methods were tested. This to-do application provides functionality for users to create, share and edit to-do lists. All the changes made to the applications data were stored as events in an event storage. Merging methods are only applied when there is need of merging data. This happens when data has been simultaneously edited from multiple sites, but not synchronized. To create a situation in which this was needed, it was possible for the to-do application to simulate having no connection to the event storage. Events that took place during this time were not committed, but saved for when the connection was regained. When the connection was regained, an attempt was made to commit these events. At this point merging conflicts could arise and a merging method was needed. Three merging methods were tested by measuring their performance on different properties. This was done by exposing each merging method to a predefined set of scenarios. These scenarios enact two users simultaneously editing the same to-do list and occasionally losing their connection. The following properties were measured: the number of conflicts solved, the severity of the unsolved conflicts and the amount of events deleted in the process. The conflict severity rates how much assistance the user is given by the method, to help solve a conflict. The results showed that the operation based merging method is best at solving the most conflicts. It also the provided the least severe conflicts. Operational transformation deleted the least amount of events.
Klamer, J. (2013, January). Conflict resolution in an event sourcing environment: Which method performs best?.