Thrift versus the native protocol
Cassandra users fall into two general categories:
 Those who have been using it a while and have grown accustomed to working directly with storage rows via a Thrift-based client.
Those who are relatively new to Cassandra and are confused by the role Thrift plays in the modern Cassandra world.
Hopefully we can clear up the confusion and set both groups on the right path. Thrift is a remote procedure call (RPC) mechanism combined with a code generator, and for several years, it formed the underlying protocol layer for clients communicating with Cassandra. This allowed the early developers of Cassandra itself to focus on the database rather than the clients. But, as we hinted at in the introduction, there are numerous negative side effects of this strategy:
There was no common language to describe data models and queries, as each client implemented different abstractions on top of the underlying Thrift protocol.
Thrift was limited to the lowest common denominator...