use defmethod/extend-protocol to def the command/event handler
remove the event routes
use channel to support asyn emit event/command