Chapter 2. Apache Thrift architecture


This chapter covers

  • Introducing the Apache Thrift cross-language service architecture
  • Explaining how endpoint transports support device independence
  • Adding generic I/O features to Apache Thrift using layered transports
  • Understanding Apache Thrift serialization protocols and their features
  • Using the Apache Thrift IDL and the IDL compiler
  • Understanding the features of the RPC server library

In the first chapter, we discussed Apache Thrift’s place in the distributed application development landscape and created a set of programs demonstrating a simple cross-language service. In this chapter, we take a sweeping look at the overall Apache Thrift framework. We’ll break down the framework into layers, examining each layer in turn. Understanding how the facets of Apache Thrift function and fit together at a high level will allow us to dig into the topics in part II of this book with a solid conceptual understanding of Apache Thrift overall.

The Apache Thrift Framework can be organized into five layers (see figure 2.1):

  • The RPC Server library
  • RPC Service Stubs
  • User-Defined Type Serialization
  • The Serialization Protocol library
  • The Transport library
Figure 2.1. The Apache Thrift framework

Applications requiring a common way to serialize data structures for storage or messaging may need nothing more than the bottom three layers of this model.

2.1. Transports

2.2. Protocols

2.3. Apache Thrift IDL

2.4. Servers

2.5. Security