Regardless of where you stand on the debate between monoliths and microservices, the fact is that its never really one or the other. As your applications grow they often need to start communicating with other applications and services. Because we’re often building for the web, we usually think of web protocols first (HTTP/JSON) when designing communication, but this might not be the best option for high throughput, high availability services.
I’ll walk through some of the large number of options we have here including Protocol Buffers, Custom TCP Framing, and HTTP/2 and outline some of the pros and cons of each. I’ll also walk through how we used some of these newer tools to build a high performance communication layer that’s being used in production systems for almost 2 years.
You might walk away still using JSON and HTTP , but I hope that you have a better understanding of the tradeoffs you’re making.