anchor.diff:  
   toc::[]
   
  -{prodname} automatically creates *internal* topics for offsets, connector status, config
  -storage and history topics. The destination topics for the captured tables will be
  -automatically created with a default config by the Kafka brokers when
  -`auto.create.topics.enable` is set to `true`.{empty} +
  -When topic creation is disabled on the brokers, for example in production environments,
  -or when the topics need a different configuration then these topics have to be created
  -upfront either automated in a custom deployment process or manually until Kafka Connect 2.6.
  -
  -Since Kafka 2.6.0 Kafka Connect supports customizable topic auto-creation.
  -
  +Kafka provides two mechanisms for creating topics automatically.
  +You can enable automatic topic creation for the Kafka broker, and, beginning with Kafka 2.6.0, you can also enable Kafka Connect to create topics.
  +The Kafka broker uses the `auto.create.topics.enable` property to control automatic topic creation.
  +In Kafka Connect, the `topic.creation.enable` property specifies whether Kafka Connect is permitted to create topics.
  +In both cases, the default settings for the properties enables automatic topic creation.
  +
  +When automatic topic creation is enabled,
  +if a Debezium source connector emits a change event record for a table for which no target topic already exists,
  +the topic is created at runtime as the event record is ingested into Kafka.
  +
  +.Differences between automatic topic creation at the broker and in Kafka Connect
  +Topics that the broker creates are limited to sharing a single default configuration.
  +The broker cannot apply unique configurations to different topics or sets of topics.
  +By contrast, Kafka Connect can apply any of several configurations when creating topics,
  +setting the replication factor, number of partitions, and other topic-specific settings as specified in the {prodname} connector configuration.
  +The connector configuration defines a set of topic creation groups, and associates a set of topic configuration properties with each group.
  +
  +The broker configuration and the Kafka Connect configuration are independent of each other.
  +Kafka Connect can create topics regardless of whether you disable topic creation at the broker.
  +If you enable automatic topic creation at both the broker and in Kafka Connect, the Connect configuration takes precedence,
  +and the broker creates topics only if none of the settings in the Kafka Connect configuration apply.
  +
  +ifdef::product[]
  +See the following topics for more information:
  +
  +* xref:disabling-automatic-topic-creation-for-the-kafka-broker[]
  +* xref:configuring-automatic-topic-creation-in-kafka-connect[]
  +* xref:configuration-of-automatically-created-topics[]
  +* xref:debezium-connector-topic-creation-groups[]
  +* xref:debezium-connector-topic-creation-group-configuration-properties[]
  +* xref:specifying-the-configuration-for-the-debezium-default-topic-creation-group[]
  +* xref:specifying-the-configurations-for-debezium-custom-topic-creation-groups[]
  +* xref:registering-debezium-custom-topic-creation-groups[]
  +endif::product[]
  +
  +// Type: procedure
  +// ModuleID: disabling-automatic-topic-creation-for-the-kafka-broker
  +[id="disabling-automatic-topic-creation-for-the-kafka-broker"]
  +== Disabling automatic topic creation for the Kafka broker
  +
  +By default, the Kafka broker configuration enables the broker to create topics at runtime if the topics do not already exist.
  +Topics created by the broker cannot be configured with custom properties.
  +If you use a Kafka version earlier than 2.6.0, and you want to create topics with specific configurations, you must to disable automatic topic creation at the broker,
  +and then explicitly create the topics, either manually, or through a custom deployment process.
  +
  +.Procedure
  +
  +* In the broker configuration, set the value of `auto.create.topics.enable` to `false`.
  +
  +// Type: procedure
  +// ModuleID: configuring-automatic-topic-creation-in-kafka-connect
  +// Title: Configuring automatic topic creation in Kafka Connect
  +[id="enabling-automatic-topic-creation"]
   == Set up Kafka Connect
   
  -Kafka Connect since Kafka 2.6.0 comes with topic creation enabled:
  +Automatic topic creation in Kafka Connect is controlled by the `topic.creation.enable` property.
  +The default value for the property is `true`, enabling automatic topic creation, as shown in the following example:
   
   [source,options="nowrap",shell]
   ----
   topic.creation.enable = true
   ----
   
  +The setting for the `topic.creation.enable` property applies to all workers in the Connect cluster.
  +
  +Kafka Connect automatic topic creation requires you to define the configuration properties that Kafka Connect applies when creating topics.
  +You specify topic configuration properties in the {prodname} connector configuration by defining topic groups, and then specifying the properties to apply to each group.
  +The connector configuration defines a default topic creation group, and, optionally, one or more custom topic creation groups.
  +Custom topic creation groups use lists of topic name patterns to specify the topics to which the group's settings apply.
  +For details about how Kafka Connect matches topics to topic creation groups, see xref:topic-creation-groups[].
  +For more information about how configuration properties are assigned to groups, see xref:topic-creation-group-configuration-properties[Topic creation group configuration properties].
  +
  +By default, topics that Kafka Connect creates are named based on the pattern `server.schema.table`, for example, `dbserver.myschema.inventory`.
  +
   ifdef::community[]
   [NOTE]
   ====
  -If you don't want to allow automatic topic creation by connectors you can set this value to `false`
  -in the Kafka Connect config (_connect-distributed.properties_ file or via environment variable
  +If you don't want to allow automatic topic creation by Kafka Connect, set the value of `topic.creation.enable` to `false`
  +in the Kafka Connect configuration (_connect-distributed.properties_ file or via environment variable
   _CONNECT_TOPIC_CREATION_ENABLE_ when using https://hub.docker.com/r/debezium/connect[{prodname}'s container image for Kafka Connect]).
   ====
   endif::community[]
   
   ifdef::product[]
  -[NOTE]
  -====
  -If you don't want to allow automatic topic creation by connectors you can set this value to `false`
  -in the Kafka Connect CRD:
  -====
  +
  +.Procedure
  +
  +* To prevent Kafka Connect from creating topics automatically, set the value of `topic.creation.enable` to `false`
  +in the Kafka Connect custom resource, as in the following example:
  +
   
   [source,yaml,options="nowrap"]
   ----
  
positive.code:     "topic.creation.default.compression.type": "lz4"
      "topic.creation.groups": "inventory,applicationlogs",
      "topic.creation.inventory.include": "dbserver1\\.inventory\\.*",
      "topic.creation.inventory.replication.factor": 3,
      "topic.creation.inventory.partitions": 20,
      "topic.creation.inventory.cleanup.policy": "compact",
      "topic.creation.inventory.delete.retention.ms": 7776000000,
  
negative.code:     "topic.creation.applicationlogs.compression.type": "lz4"
  }
  ----
  endif::community[]
  
  ifdef::product[]
  [source,yaml]
  ----
  apiVersion: kafka.strimzi.io/v1beta1
  kind: KafkaConnector
  metadata:
    name: inventory-connector
  ...
  spec:
  ...
  
     config:
  ...
      topic.creation.default.replication.factor: 3,
      topic.creation.default.partitions: 10,
      topic.creation.default.cleanup.policy: compact
      topic.creation.default.compression.type: lz4
      topic.creation.groups: inventory,applicationlogs
      topic.creation.inventory.include: dbserver1\\.inventory\\.*
      topic.creation.inventory.partitions: 20
      topic.creation.inventory.cleanup.policy: compact
      topic.creation.inventory.delete.retention.ms: 7776000000
      topic.creation.applicationlogs.include: dbserver1\\.logs\\.applog-.*
      topic.creation.applicationlogs.exclude": dbserver1\\.logs\\.applog-old-.*
      topic.creation.applicationlogs.replication.factor: 1
      topic.creation.applicationlogs.partitions: 20
      topic.creation.applicationlogs.cleanup.policy: delete
      topic.creation.applicationlogs.retention.ms: 7776000000
      topic.creation.applicationlogs.compression.type: lz4
  ...
  ----
  endif::product[]
  ifdef::community[]
  == Additional resources
  
  