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 Events pushed to the task manager's event system to RabbitMQTask (Completed, Failed, and Canceled) have to be transmitted to other nodesEvents should be created: TerminationEvent which includes Completed, Failed, and CanceledTerminationEvents will be broadcasted on an exchange which will be bound to all interested components laterEventSourcingSystem.dipatch should use RabbitMQ to dispatch Events instead of triggering local ListenersTask emits a termination event