To reproduce error, two clients are required (it does not matter if via 'client' or meteor shell), that will send commands like on example of space-todos:
var newTodoData = {
title: 'abcd'
};
var i = 0;
for (i = 0; i <= 2000; ++i) {
Todos.app.send(
new Todos.CreateTodo(_.extend({}, newTodoData, {
targetId: Todos.app.configuration.todoListId
}))
)
}
Rhys and I found a issue with concurrency exception being thrown on
Space.eventSourcing.CommitStore
.This issue is related to lack of
try catch
on https://github.com/meteor-space/event-sourcing/blob/master/source/server/infrastructure/commit_store.coffee#L57Because of it, errors are thrown like:
That causes not only commit not being inserted, can cause issues with commit publishing but also the subject of topic - aggregate in memory not being properly versioned since thats a silent fail, that still allows this code to be run: https://github.com/meteor-space/event-sourcing/blob/dee18c7acfc4c3dbb3b651f1385f285704158ecc/source/server/infrastructure/repository.coffee#L31
To reproduce error, two clients are required (it does not matter if via 'client' or
meteor shell
), that will send commands like on example ofspace-todos
: