a message dispatcher based on protobuf