Apache Thrift


What is Apache Thrift? Thrift is a framework. With this framework the programmers can create high-performance cross-language services.

With Thrift you can write the specifications of the contract between two or more microservices (client side and server side), and then you can generate the stub code for the right programming language.

The programming languages supported by Apache Thrift are:

AS3 C C++ C#
D Dart Delphi Erlang
Go Haskell Haxe Java
JavaScript Lua Node.js Objective-C
OCaml Perl PHP Python
Ruby Smalltalk TypeScript

The “contract”is written in IDL (Interface Definition Language). Into this file the developer specify the abstract data type. After this definition, the IDL can be compiled into source code. This step seems to be a wasting time, but is useful because the developer must consider the interface in isolation, without thoughts on code.

I think Apache Thrift is a very useful framework for this reasons:

  • The design stage of the micorservice is independent from the implementation stage
  • Is useful in heterogenic  teams: all developers can work on a project and use the preferred programming language.
  • In this way, the designer, create a contract between the services that is clear and documented.

Useful links about this argument are:



One thought on “Apache Thrift

  1. I’ve been browsing online greater than 3 hours as of late,
    yet I never discovered any interesting article like yours.

    It’s pretty value enough for me. In my opinion, if all website owners
    and bloggers made just right content material as you did, the internet shall
    be a lot more useful than ever before.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s