Cassandra uses a layered architecture with an API layer, Dynamo layer, and database layer. The API layer supports Thrift, CQL, and JMX interfaces. The Dynamo layer handles ring operations and messaging. The database layer includes the memtable, SSTables, and components for data storage and access like Table and ColumnFamilyStore. Messages are processed asynchronously across stages like READ and MUTATION using handlers and callbacks.