adopt a request/response pattern for our node to node communication
Description
Currently in various occasions when we are sending a TCP request to another node (either primary or worker) we need to have a way to identify that a response we get back is matched to that specific request. There are places in the codebase where we handle this via some hackish solutions (see issue https://github.com/MystenLabs/narwhal/issues/94 for potential improvements). However, ideally we would like to have a proper request/response pattern so the application level doesn't handle this on its own, but rather be handled on the networking level.
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.
Closing the ticket as @aschran @bmwill already working on this and tracking via other issues