<table class="data-table"><tbody>
<tr>
<th>Name</th>
<th>Description</th>
<th>Type</th>
<th>Default</th>
<th>Valid Values</th>
<th>Importance</th>
</tr>
<tr>
<td>config.storage.topic</td></td><td>The name of the Kafka topic where connector configurations are stored</td></td><td>string</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>group.id</td></td><td>A unique string that identifies the Connect cluster group this worker belongs to.</td></td><td>string</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>key.converter</td></td><td>Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka. This controls the format of the keys in messages written to or read from Kafka, and since this is independent of connectors it allows any connector to work with any serialization format. Examples of common formats include JSON and Avro.</td></td><td>class</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>offset.storage.topic</td></td><td>The name of the Kafka topic where connector offsets are stored</td></td><td>string</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>status.storage.topic</td></td><td>The name of the Kafka topic where connector and task status are stored</td></td><td>string</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>value.converter</td></td><td>Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka. This controls the format of the values in messages written to or read from Kafka, and since this is independent of connectors it allows any connector to work with any serialization format. Examples of common formats include JSON and Avro.</td></td><td>class</td></td><td></td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>bootstrap.servers</td></td><td>A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form <code>host1:port1,host2:port2,...</code>. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).</td></td><td>list</td></td><td>localhost:9092</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>heartbeat.interval.ms</td></td><td>The expected time between heartbeats to the group coordinator when using Kafka's group management facilities. Heartbeats are used to ensure that the worker's session stays active and to facilitate rebalancing when new members join or leave the group. The value must be set lower than <code>session.timeout.ms</code>, but typically should be set no higher than 1/3 of that value. It can be adjusted even lower to control the expected time for normal rebalances.</td></td><td>int</td></td><td>3000</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>rebalance.timeout.ms</td></td><td>The maximum allowed time for each worker to join the group once a rebalance has begun. This is basically a limit on the amount of time needed for all tasks to flush any pending data and commit offsets. If the timeout is exceeded, then the worker will be removed from the group, which will cause offset commit failures.</td></td><td>int</td></td><td>60000</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>session.timeout.ms</td></td><td>The timeout used to detect worker failures. The worker sends periodic heartbeats to indicate its liveness to the broker. If no heartbeats are received by the broker before the expiration of this session timeout, then the broker will remove the worker from the group and initiate a rebalance. Note that the value must be in the allowable range as configured in the broker configuration by <code>group.min.session.timeout.ms</code> and <code>group.max.session.timeout.ms</code>.</td></td><td>int</td></td><td>10000</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>ssl.key.password</td></td><td>The password of the private key in the key store file. This is optional for client.</td></td><td>password</td></td><td>null</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>ssl.keystore.location</td></td><td>The location of the key store file. This is optional for client and can be used for two-way authentication for client.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>ssl.keystore.password</td></td><td>The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. </td></td><td>password</td></td><td>null</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>ssl.truststore.location</td></td><td>The location of the trust store file. </td></td><td>string</td></td><td>null</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>ssl.truststore.password</td></td><td>The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled.</td></td><td>password</td></td><td>null</td></td><td></td></td><td>high</td></td></tr>
<tr>
<td>client.dns.lookup</td></td><td><p>Controls how the client uses DNS lookups.</p><p>If set to <code>use_all_dns_ips</code> then, when the lookup returns multiple IP addresses for a hostname, they will all be attempted to connect to before failing the connection. Applies to both bootstrap and advertised servers.</p><p>If the value is <code>resolve_canonical_bootstrap_servers_only</code> each entry will be resolved and expanded into a list of canonical names.</p></td></td><td>string</td></td><td>default</td></td><td>[default, use_all_dns_ips, resolve_canonical_bootstrap_servers_only]</td></td><td>medium</td></td></tr>
<tr>
<td>connections.max.idle.ms</td></td><td>Close idle connections after the number of milliseconds specified by this config.</td></td><td>long</td></td><td>540000</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>receive.buffer.bytes</td></td><td>The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.</td></td><td>int</td></td><td>32768</td></td><td>[0,...]</td></td><td>medium</td></td></tr>
<tr>
<td>request.timeout.ms</td></td><td>The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.</td></td><td>int</td></td><td>40000</td></td><td>[0,...]</td></td><td>medium</td></td></tr>
<tr>
<td>sasl.client.callback.handler.class</td></td><td>The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface.</td></td><td>class</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>sasl.jaas.config</td></td><td>JAAS login context parameters for SASL connections in the format used by JAAS configuration files. JAAS configuration file format is described <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/security/jgss/tutorials/LoginConfigFile.html">here</a>. The format for the value is: '<code>loginModuleClass controlFlag (optionName=optionValue)*;</code>'. For brokers, the config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;</td></td><td>password</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>sasl.kerberos.service.name</td></td><td>The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>sasl.login.callback.handler.class</td></td><td>The fully qualified name of a SASL login callback handler class that implements the AuthenticateCallbackHandler interface. For brokers, login callback handler config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler</td></td><td>class</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>sasl.login.class</td></td><td>The fully qualified name of a class that implements the Login interface. For brokers, login config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin</td></td><td>class</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>sasl.mechanism</td></td><td>SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.</td></td><td>string</td></td><td>GSSAPI</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>security.protocol</td></td><td>Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.</td></td><td>string</td></td><td>PLAINTEXT</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>send.buffer.bytes</td></td><td>The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.</td></td><td>int</td></td><td>131072</td></td><td>[0,...]</td></td><td>medium</td></td></tr>
<tr>
<td>ssl.enabled.protocols</td></td><td>The list of protocols enabled for SSL connections.</td></td><td>list</td></td><td>TLSv1.2,TLSv1.1,TLSv1</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>ssl.keystore.type</td></td><td>The file format of the key store file. This is optional for client.</td></td><td>string</td></td><td>JKS</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>ssl.protocol</td></td><td>The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.</td></td><td>string</td></td><td>TLS</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>ssl.provider</td></td><td>The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>ssl.truststore.type</td></td><td>The file format of the trust store file.</td></td><td>string</td></td><td>JKS</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>worker.sync.timeout.ms</td></td><td>When the worker is out of sync with other workers and needs to resynchronize configurations, wait up to this amount of time before giving up, leaving the group, and waiting a backoff period before rejoining.</td></td><td>int</td></td><td>3000</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>worker.unsync.backoff.ms</td></td><td>When the worker is out of sync with other workers and  fails to catch up within worker.sync.timeout.ms, leave the Connect cluster for this long before rejoining.</td></td><td>int</td></td><td>300000</td></td><td></td></td><td>medium</td></td></tr>
<tr>
<td>access.control.allow.methods</td></td><td>Sets the methods supported for cross origin requests by setting the Access-Control-Allow-Methods header. The default value of the Access-Control-Allow-Methods header allows cross origin requests for GET, POST and HEAD.</td></td><td>string</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>access.control.allow.origin</td></td><td>Value to set the Access-Control-Allow-Origin header to for REST API requests.To enable cross origin access, set this to the domain of the application that should be permitted to access the API, or '*' to allow access from any domain. The default value only allows access from the domain of the REST API.</td></td><td>string</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>client.id</td></td><td>An id string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.</td></td><td>string</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>config.providers</td></td><td>Comma-separated names of <code>ConfigProvider</code> classes, loaded and used in the order specified. Implementing the interface  <code>ConfigProvider</code> allows you to replace variable references in connector configurations, such as for externalized secrets. </td></td><td>list</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>config.storage.replication.factor</td></td><td>Replication factor used when creating the configuration storage topic</td></td><td>short</td></td><td>3</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>header.converter</td></td><td>HeaderConverter class used to convert between Kafka Connect format and the serialized form that is written to Kafka. This controls the format of the header values in messages written to or read from Kafka, and since this is independent of connectors it allows any connector to work with any serialization format. Examples of common formats include JSON and Avro. By default, the SimpleHeaderConverter is used to serialize header values to strings and deserialize them by inferring the schemas.</td></td><td>class</td></td><td>org.apache.kafka.connect.storage.SimpleHeaderConverter</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>internal.key.converter</td></td><td>Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka. This controls the format of the keys in messages written to or read from Kafka, and since this is independent of connectors it allows any connector to work with any serialization format. Examples of common formats include JSON and Avro. This setting controls the format used for internal bookkeeping data used by the framework, such as configs and offsets, so users can typically use any functioning Converter implementation. Deprecated; will be removed in an upcoming version.</td></td><td>class</td></td><td>org.apache.kafka.connect.json.JsonConverter</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>internal.value.converter</td></td><td>Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka. This controls the format of the values in messages written to or read from Kafka, and since this is independent of connectors it allows any connector to work with any serialization format. Examples of common formats include JSON and Avro. This setting controls the format used for internal bookkeeping data used by the framework, such as configs and offsets, so users can typically use any functioning Converter implementation. Deprecated; will be removed in an upcoming version.</td></td><td>class</td></td><td>org.apache.kafka.connect.json.JsonConverter</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>listeners</td></td><td>List of comma-separated URIs the REST API will listen on. The supported protocols are HTTP and HTTPS.
 Specify hostname as 0.0.0.0 to bind to all interfaces.
 Leave hostname empty to bind to default interface.
 Examples of legal listener lists: HTTP://myhost:8083,HTTPS://myhost:8084</td></td><td>list</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>metadata.max.age.ms</td></td><td>The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions.</td></td><td>long</td></td><td>300000</td></td><td>[0,...]</td></td><td>low</td></td></tr>
<tr>
<td>metric.reporters</td></td><td>A list of classes to use as metrics reporters. Implementing the <code>org.apache.kafka.common.metrics.MetricsReporter</code> interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics.</td></td><td>list</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>metrics.num.samples</td></td><td>The number of samples maintained to compute metrics.</td></td><td>int</td></td><td>2</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>metrics.recording.level</td></td><td>The highest recording level for metrics.</td></td><td>string</td></td><td>INFO</td></td><td>[INFO, DEBUG]</td></td><td>low</td></td></tr>
<tr>
<td>metrics.sample.window.ms</td></td><td>The window of time a metrics sample is computed over.</td></td><td>long</td></td><td>30000</td></td><td>[0,...]</td></td><td>low</td></td></tr>
<tr>
<td>offset.flush.interval.ms</td></td><td>Interval at which to try committing offsets for tasks.</td></td><td>long</td></td><td>60000</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>offset.flush.timeout.ms</td></td><td>Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt.</td></td><td>long</td></td><td>5000</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>offset.storage.partitions</td></td><td>The number of partitions used when creating the offset storage topic</td></td><td>int</td></td><td>25</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>offset.storage.replication.factor</td></td><td>Replication factor used when creating the offset storage topic</td></td><td>short</td></td><td>3</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>plugin.path</td></td><td>List of paths separated by commas (,) that contain plugins (connectors, converters, transformations). The list should consist of top level directories that include any combination of: 
a) directories immediately containing jars with plugins and their dependencies
b) uber-jars with plugins and their dependencies
c) directories immediately containing the package directory structure of classes of plugins and their dependencies
Note: symlinks will be followed to discover dependencies or plugins.
Examples: plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors</td></td><td>list</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>reconnect.backoff.max.ms</td></td><td>The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms.</td></td><td>long</td></td><td>1000</td></td><td>[0,...]</td></td><td>low</td></td></tr>
<tr>
<td>reconnect.backoff.ms</td></td><td>The base amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all connection attempts by the client to a broker.</td></td><td>long</td></td><td>50</td></td><td>[0,...]</td></td><td>low</td></td></tr>
<tr>
<td>rest.advertised.host.name</td></td><td>If this is set, this is the hostname that will be given out to other workers to connect to.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>rest.advertised.listener</td></td><td>Sets the advertised listener (HTTP or HTTPS) which will be given to other workers to use.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>rest.advertised.port</td></td><td>If this is set, this is the port that will be given out to other workers to connect to.</td></td><td>int</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>rest.extension.classes</td></td><td>Comma-separated names of <code>ConnectRestExtension</code> classes, loaded and called in the order specified. Implementing the interface  <code>ConnectRestExtension</code> allows you to inject into Connect's REST API user defined resources like filters. Typically used to add custom capability like logging, security, etc. </td></td><td>list</td></td><td>""</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>rest.host.name</td></td><td>Hostname for the REST API. If this is set, it will only bind to this interface.</td></td><td>string</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>rest.port</td></td><td>Port for the REST API to listen on.</td></td><td>int</td></td><td>8083</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>retry.backoff.ms</td></td><td>The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios.</td></td><td>long</td></td><td>100</td></td><td>[0,...]</td></td><td>low</td></td></tr>
<tr>
<td>sasl.kerberos.kinit.cmd</td></td><td>Kerberos kinit command path.</td></td><td>string</td></td><td>/usr/bin/kinit</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>sasl.kerberos.min.time.before.relogin</td></td><td>Login thread sleep time between refresh attempts.</td></td><td>long</td></td><td>60000</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>sasl.kerberos.ticket.renew.jitter</td></td><td>Percentage of random jitter added to the renewal time.</td></td><td>double</td></td><td>0.05</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>sasl.kerberos.ticket.renew.window.factor</td></td><td>Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket.</td></td><td>double</td></td><td>0.8</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>sasl.login.refresh.buffer.seconds</td></td><td>The amount of buffer time before credential expiration to maintain when refreshing a credential, in seconds. If a refresh would otherwise occur closer to expiration than the number of buffer seconds then the refresh will be moved up to maintain as much of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a default value of  300 (5 minutes) is used if no value is specified. This value and sasl.login.refresh.min.period.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.</td></td><td>short</td></td><td>300</td></td><td>[0,...,3600]</td></td><td>low</td></td></tr>
<tr>
<td>sasl.login.refresh.min.period.seconds</td></td><td>The desired minimum time for the login refresh thread to wait before refreshing a credential, in seconds. Legal values are between 0 and 900 (15 minutes); a default value of 60 (1 minute) is used if no value is specified.  This value and  sasl.login.refresh.buffer.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.</td></td><td>short</td></td><td>60</td></td><td>[0,...,900]</td></td><td>low</td></td></tr>
<tr>
<td>sasl.login.refresh.window.factor</td></td><td>Login refresh thread will sleep until the specified window factor relative to the credential's lifetime has been reached, at which time it will try to refresh the credential. Legal values are between 0.5 (50%) and 1.0 (100%) inclusive; a default value of 0.8 (80%) is used if no value is specified. Currently applies only to OAUTHBEARER.</td></td><td>double</td></td><td>0.8</td></td><td>[0.5,...,1.0]</td></td><td>low</td></td></tr>
<tr>
<td>sasl.login.refresh.window.jitter</td></td><td>The maximum amount of random jitter relative to the credential's lifetime that is added to the login refresh thread's sleep time. Legal values are between 0 and 0.25 (25%) inclusive; a default value of 0.05 (5%) is used if no value is specified. Currently applies only to OAUTHBEARER.</td></td><td>double</td></td><td>0.05</td></td><td>[0.0,...,0.25]</td></td><td>low</td></td></tr>
<tr>
<td>ssl.cipher.suites</td></td><td>A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol. By default all the available cipher suites are supported.</td></td><td>list</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>ssl.client.auth</td></td><td>Configures kafka broker to request client authentication. The following settings are common:  <ul> <li><code>ssl.client.auth=required</code> If set to required client authentication is required. <li><code>ssl.client.auth=requested</code> This means client authentication is optional. unlike requested , if this option is set client can choose not to provide authentication information about itself <li><code>ssl.client.auth=none</code> This means client authentication is not needed.</td></td><td>string</td></td><td>none</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>ssl.endpoint.identification.algorithm</td></td><td>The endpoint identification algorithm to validate server hostname using server certificate. </td></td><td>string</td></td><td>https</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>ssl.keymanager.algorithm</td></td><td>The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.</td></td><td>string</td></td><td>SunX509</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>ssl.secure.random.implementation</td></td><td>The SecureRandom PRNG implementation to use for SSL cryptography operations. </td></td><td>string</td></td><td>null</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>ssl.trustmanager.algorithm</td></td><td>The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.</td></td><td>string</td></td><td>PKIX</td></td><td></td></td><td>low</td></td></tr>
<tr>
<td>status.storage.partitions</td></td><td>The number of partitions used when creating the status storage topic</td></td><td>int</td></td><td>5</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>status.storage.replication.factor</td></td><td>Replication factor used when creating the status storage topic</td></td><td>short</td></td><td>3</td></td><td>[1,...]</td></td><td>low</td></td></tr>
<tr>
<td>task.shutdown.graceful.timeout.ms</td></td><td>Amount of time to wait for tasks to shutdown gracefully. This is the total amount of time, not per task. All task have shutdown triggered, then they are waited on sequentially.</td></td><td>long</td></td><td>5000</td></td><td></td></td><td>low</td></td></tr>
</tbody></table>
