Date: 2019-10-02
Accepted (lazy consensus) & implemented
By switching the task manager to a distributed implementation, we need to be able to execute a Task
on any node of the cluster. We need to have a way to describe the Task
to be executed and serialize it in order to be able to store it in the Created
event. Which will be persisted in the Event Store, and will be send in the event bus.
At this point in time a Task
can contain any arbitrary code. It's not an element of a finite set of actions.
Factory
for one Task
Factory
Registry
via a Guice ModuleTask
Serialization
will be done in JSON, We will get inspired by EventSerializer
Task
s should have a specific integration test demonstrating that serialization worksTask
is responsible of eventually dealing with the different versions of the serialized informationTask
s should be serializable.Task
s should provide a Factory
which would be responsible to deserialize the task and instantiate it.Factory
should be registered through a Guice module to be created for each project containing a Factory