Summary
The ability to effectively utilize a database's potential is more of an art than science. This chapter is probably the most important chapter from the perspective of an application developer. CQL 3 is de facto standard to work with Cassandra and Cassandra has evolved much more beyond the older Thrift protocol. CQL3 makes sure that a developer can never go wrong or use an antipattern. Addition of collections, tuples, UDTs, and lightweight transactions helped a lot to avoid exceptional coding and handling from the developer side and working with third party libraries.
Although the Cassandra client layer has been completely revamped, at its core, the data representation has stayed more or less the same. Working with CQL3, it is easy to forget about underlying storage and start thinking in terms of SQL. Then, at some point, you hit an exceptional behavior and wonder why it works this way—why indexes are like that, why compound keys behave in that way, how collections are...