Development shops can spend significant time on integration when building services in a number of different programming languages within the same application infrastructure. One newer project in the Apache Software Foundation Incubator, Thrift, can let developers build services that communicate across a number of languages automatically.
When social network Facebook began scaling to larger and larger proportions, its engineers soon realized that PHP, which the site was based on, would not scale the way they wanted. Before long the company engineers began building services and components in languages like C++, Ruby, Python, and Erlang. Facebook originally developed the open source Thrift framework to automatically generate the code new services would need to communicate with the PHP front end, said Mark Slee, a software engineer at Facebook. Thrift lets you define data types and interfaces for a service in an agnostic language and it then generates code to read and write all those data types and services in each target language. While some of Thrift’s benefits are mostly relevant in large scale infrastructures, Slee continued, any enterprise where interfaces change might find its seamless version upgrade features useful.
Facebook released Thrift to the Apache Incubator in 2008.