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.
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.
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.