YugabyteDB's YCQL API has its roots in the Cassandra Query Language (CQL) and runs on top of YugabyteDB's distributed storage layer called DocDB. This architecture allows YCQL to support most Cassandra features, such as data types, queries, expressions, operators, and so on, and at the same provide seamless scalability and resilience.

Tip
A large portion of the documentation and examples written for Cassandra would work against YCQL.

Cassandra features in YCQL

The following table lists the most important YCQL features which you would find familiar if you have worked with Cassandra.

YCQL Feature Description
Data definition YCQL shell with ycqlsh, keysapces, tables, indexes, and types
Data Types String, numeric, frozen types, UUID, JSONB ...
Data Manipulation SELECT, INSERT, UPDATE, DELETE ...
Expressions Simple Values, Function calls, Subscript ...
Operators Binary, Unary, Null operators ...
Security Roles and Permissions

Going beyond Cassandra

YCQL has a number of features that are not present in Cassandra, as summarized in the following table.

YCQL Feature Description
Strongly consistent with Raft replication Enables strong consistency across replicas
Fast transactions Single round-trip distributed transactions
Native JSONB support Enables document data modelling like MongoDB
Fast and consistent Secondary Indexes Immediately consistent indexes with point lookups (no fan-out)
Secondary indexes with JSONB datatype Efficient reads with consistency and flexibility in data model

Learn more