There are more than a few developers out there who view anything associated with making a remote procedure call (RPC) as something of an anachronism. But at the recent APIcon 2014 conference, Randy Abernethy, a managing partner with RX-M, an IT consulting firm that specializes in trading systems, made a case for an open source Apache Thrift RPC project.
Abernethy says the problem that organizations are increasingly facing is a major integration challenge in a world where applications are built using multiple programming languages. In fact, Abernathy says the polyglot explosion we’re witnessing shows no sign of abating.
As a result, Abernethy says there’s a need for a cross-language serialization and RPC framework using a Thrift compiler written in C++ that can create stubs in 15 programming languages.
Specifically, Apache Thrift allows developers to define data types and service interfaces in a simple definition file. Taking that file as input, a compiler generates code to be used to build RPC clients and servers that communicate across programming languages, thereby eliminating the boilerplate code required to serialize and transport objects and invoke remote methods. The Apache Thrift protocol and transport layer are part of the runtime library, making it possible to define a service and change the protocol and transport without recompiling the code.
Abernethy says the Apache Thrift project is a modern approach to building an RPC that was developed by Facebook. Now as a top-level Apache project, Apache Thrift is being used as an alternative to RESTful APIs in scenarios where applications are latency sensitive. Applications that support the Apache Thrift RPC, says Abernethy, can run on the web, run on traditional enterprise systems or be embedded. The value of the Apache Thrift RPC is that it allows those classes of applications to all share data with one another.
As a technology, RPCs have been around for decades and are just as likely to be around for decades to come. While there was time when they were considered the primary method to integrate data, RPCs today are only one of many choices. But rather than thinking of a particular method for integrating applications as being old, it may very well be that, at least in the case of RPCs, it’s a method that is tried and true.
The 0.9.1 version of the Apache Thrift RPC is available now. Version 1.0 version of Apache Thrift is expected to be available early next year.