Skit AI processes millions of speech recognition requests every day, and to handle such a load we have focused on building a highly scalable technical stack.

Firstly, we realized the drawbacks of using HTTP/1.1 keeping in mind one of our requirements to do end-to-end streaming recognition to reduce the overall latency of the system. So, we decided to migrate all our core services from REST APIs (HTTP/1.1 + JSON) to gRPC (HTTP/2.0 + Protobuf).

In this article, I will take you through the benefits and challenges of adopting gRPC compared to a REST-based communication style.

What is Microservices Architecture?

Defines an architecture that structures the application as a set of loosely coupled, collaborating services.

Services communicate using either synchronous protocols such as HTTP/REST, gRPC or asynchronous protocols such as AMQP. Services can be developed and deployed independently of one another.

What are the challenges of adopting Microservices Architecture?

While moving to a microservices architecture has many strong benefits, there are no silver bullets!

This means there are tradeoffs to make!

Microservices give us a higher level of complexity, and there are several inherent challenges with microservices you need to take into account when changing from a monolithic architecture. Like,

gRPC gives us the tools and capabilities to combat these issues without having to roll your custom frameworks.