Facebook recently began sharing a lot of the details about their engineering practices on the Facebook engineering blog. Today they made a really big announcement from the development perspective: their Thirft software framework has been accepted into the Apache incubator. The Thrift framework solves one core problem: enable efficient and reliable communication across programming languages. There are also some really slick features built into Thrift.
One of those features is the interface. Rather than selecting to use TCP/IP or a standard I/O protocol or any other protocol, they determined that “Thrift code only needs to know how to read and write data. The origin and destination of the data are irrelevant; it may be a socket, a segment of shared memory, or a file on the local disk.” There is apparently an abstracted layer that takes care of the transport interface.
The Thrift framework enables applications and components to speak with each other no matter what language they are in. Currently Thrift supports C++, Java, Python, Ruby and PHP but may potentially expand to other languages as well. At Facebook, Thrift has been implemented for search and logging purposes and implementations so far have proven the framework to be extremely scalable.