In a microservices architecture, there are many components that need to communicate through different technology layers in order to gain the business value we seek. Oftentimes, on each of the layers, we make our choice of communication protocols, which ultimately have a fundamental impact on the system performance, reliability and troubleshooting process. Some of us make these choices after due research, while others may opt for the default configuration in hopes it fits their needs. The thing is, there are different aspects as to how network protocols can affect the development and maintenance of production services such as cost factors, performance factors, network throughput, traffic security and authentication––the list goes on (really it does…). In order to tackle this one step at a time, we can separate them into three distinct layers: application logic, transport, and system level. In each of these layers, a well-educated decision can then be made to monitor, fine-tune, or even replace a selected protocol in favour of a better one. A special concern may even be when we can’t change the protocol in use by a third party, and yet, do not be alarmed! We still have techniques at hand that can maximize system performance. In this talk, we’ll walk through some of the most popular protocols used in cloud operations today, and talk about the trade-offs from performance, cost, security, and other perspectives that we need to take into consideration when making protocol decisions based on our SLA and performance requirements to our customers.