# Choosing the Best Protocol: gRPC vs. Apache Thrift

## Metadata
- Author: [[hackernoon.com]]
- Full Title: Choosing the Best Protocol: gRPC vs. Apache Thrift
- Category: #articles
- Summary: gRPC and Apache Thrift are two popular communication protocols for building distributed systems. gRPC offers high performance, modern features, and active support, while Thrift provides broad language support and fine control over serialization. The best choice depends on your project's needs, but gRPC is generally preferred for new projects.
- URL: https://hackernoon.com/choosing-the-best-protocol-grpc-vs-apache-thrift
## Highlights
- [Apache Thrift](https://thrift.apache.org/?ref=hackernoon.com), on the other hand, is a project from the Apache Software Foundation. It was originally developed by Facebook. ([View Highlight](https://read.readwise.io/read/01k2n7x3mq2qd2g7qy7kts1z7y))
- [gRPC](https://grpc.io/?ref=hackernoon.com) (gRPC Remote Procedure Call) is an open-source remote procedure call system developed by Google. ([View Highlight](https://read.readwise.io/read/01k2n7x9kczff99f3tfmpw2ccj))
- While flexible, Thrift's IDL can be more complex and less user-friendly compared to protobuf. ([View Highlight](https://read.readwise.io/read/01k2n82459a5vsj73fgang15dr))
- **Ecosystem and Community Support:**
While not as popular as gRPC in recent years, it still has a robust community and long-term support from the Apache Foundation.
**Maintenance and Versioning:**
While still maintained, Thrift’s development pace is slower, and it may not receive updates and new features as frequently. This can sometimes mean dealing with older versions and potentially slower bug resolution. ([View Highlight](https://read.readwise.io/read/01k2n9jxrzfbtr0qy54w0b3jy9))
- **Use gRPC if:**
• You need high performance and low latency.
• Your application can benefit from HTTP/2 features like multiplexing and flow control.
• You require built-in support for advanced features like streaming and load balancing.
• Your team is comfortable with Protocol Buffers. ([View Highlight](https://read.readwise.io/read/01k2n9gekdpnh1qp3ah67kdjcd))
- Personally I go with gRPC for new projects. ([View Highlight](https://read.readwise.io/read/01k2n9jfjxd19e3q9vxz7y55pm))