In Materialize, a [cluster](/concepts/clusters/) is an isolated environment, similar to a virtual warehouse in Snowflake. When you create a cluster, you choose the size of its compute resource allocation based on the work you need the cluster to do, whether ingesting data from a source, computing always-up-to-date query results, serving results to external clients, or a combination. In this step, you'll create a dedicated cluster for ingesting source data from topics in your Kafka (or Kafka-API compatible) broker. 1. In the [SQL Shell](https://console.materialize.com/), or your preferred SQL client connected to Materialize, use the [`CREATE CLUSTER`](/sql/create-cluster/) command to create the new cluster: ```mzsql CREATE CLUSTER ingest_kafka (SIZE = '100cc'); SET CLUSTER = ingest_kafka; ``` A cluster of [size](/sql/create-cluster/#size) `100cc` should be enough to accommodate multiple Kafka sources, depending on the source characteristics (e.g., sources with [`ENVELOPE UPSERT`](/sql/create-source/#upsert-envelope) or [`ENVELOPE DEBEZIUM`](/sql/create-source/#debezium-envelope) will be more memory-intensive) and the upstream traffic patterns. You can readjust the size of the cluster at any time using the [`ALTER CLUSTER`](/sql/alter-cluster) command: ```mzsql ALTER CLUSTER SET ( SIZE = ); ```