Description

Avro is data serialization and RPC framework similar to Thrift. It provides:

Rich data structures.

A compact, fast, binary data format.

A container file, to store persistent data.

Remote procedure call (RPC).

Simple integration with dynamic languages. Code generation is not required to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages.

Cassandra's Avro interface is being structured in a way that closely mirrors the existing Thrift interface, both in terms of public facing API, and how it is implemented. GSOC students interested in this task should begin by familiarizing themselves with Cassandra's Thrift service (org.apache.cassandra.thrift).

Note: This is a very large and long-running task so treat this as a meta-issue and add sub-tasks and/or blocking issues as appropriate.