NexresRPC contains three components: Acceptor, Service, and ReplicaClient.
Acceptor runs two types of connections: Long Connection that is built between internal services, and Short Connection that is connected from the user clients.
Service runs multiple workers which keep watching the incoming messages from MIQ, popping and executing. Messages that need to be delivered to other services will be pushed into the message output queue(MOQ).
ReplicaClient is also an asnychronous io client which uses the boost::asio library to send out the messages from MOQ as well. Async Replica Client handlers a few numbers of boost::io_service so as to fully utilize the IO write. Messages from MOQ will be grouped as one batch to reduce the IO latency.