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 a way for nodes to be signaled of any termination event so that we can notify blocking clients.
RabbitMQEventHandler
which publish Event
s pushed to the task manager's event system to RabbitMQTask
(Completed
, Failed
, and Canceled
) have to be transmitted to other nodesEvent
s should be created: TerminationEvent
which includes Completed
, Failed
, and Canceled
TerminationEvent
s will be broadcasted on an exchange which will be bound to all interested components laterEventSourcingSystem.dipatch
should use RabbitMQ
to dispatch Event
s instead of triggering local Listener
sTask
emits a termination event