As we saw, tuples and user-defined types have a lot in common. In both structures, a column contains a fixed, predefined set of fields, each of which can have its own type. Both structures are stored as frozen, meaning that Cassandra cannot perform discrete operations on their internal components. Both can be indexed and used in the WHERE clause of a query. So how do we decide which to use?
In most cases, a user-defined type is a better option. User-defined types give names to their fields, making it easier for application developers to reason about their usage. Also, user-defined types can be partially selected in queries, tuples cannot.
The only reason to use a tuple is convenience: a tuple does not need to be defined separately from its use in a column definition. So, for quick prototyping of schema structures, a tuple can be a better option. However, for a schema...