I do not completely understand the way we are supposed to use handlers and the Exec function.
My understanding is that the handlers are registered in the NewGossiper function (given). The handlers use the Exec function to handle different types of received messages.
However I don't get if we are ever supposed to call Exec ourselves (either directly or via ExecuteHandler). Additionally, it doesn't seem clear from the handout or the code what functionnality should be in Exec, i.e. should Exec be sending any messages? Or is Run responsible for this? Or maybe AddMessage?
I feel the purpose and functionnality of Exec should be explained more precisely.