A session object is used to execute queries and maintains cluster state through
the control connection. The control connection is used to auto-discover nodes and
monitor cluster changes (topology and schema). Each session also maintains multiple
/pools of connections to cluster nodes which are used to query the cluster.

A statement object is an executable query. It represents either a regular
(adhoc) statement or a prepared statement. It maintains the queries' parameter
values along with query options (consistency level, paging state, etc.)