# Produce

Required Frends version: 5.5+

Required .NET version: 6.0

Compatible Agents: Crossplatform

Source code: <https://github.com/FrendsPlatform/Frends.Kafka>

{% tabs %}
{% tab title="Parameter: Input" %}

| Name                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Host : `String`                        | <p>Initial list of brokers as a CSV list of broker host or host:port.</p><p><br>Default: <code>-</code><br>Example: <code>localhost:1234</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Topic : `String`                       | <p>Topic.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleTopic</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Key : `String`                         | <p>Message key value.</p><p>Can be empty.</p><p><br>Default: <code>-</code><br>Example: <code>examplekey</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Message : `String`                     | <p>Message.</p><p>Can be empty.</p><p><br>Default: <code>-</code><br>Example: <code>Example message.</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Partition : `Int32`                    | <p>The partition value.</p><p>If set to -1. The partition the message is sent to is determined by the partitioner defined using the Options.Partitioner configuration property.</p><p><br>Default: <code>0</code><br>Example: <code>0</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                            |
| CompressionType : `CompressionTypes`   | <p>Compression codec to use for compressing message sets.</p><p>Possible values:</p><ul><li><code>None</code>:</li></ul><p>Compression codec to use for compressing message sets.</p><ul><li><code>Gzip</code>:</li></ul><p>Compression codec to use for compressing message sets.</p><ul><li><code>Snappy</code>:</li></ul><p>Compression codec to use for compressing message sets.</p><ul><li><code>Lz4</code>:</li></ul><p>Compression codec to use for compressing message sets.</p><ul><li><code>Zstd</code>:</li></ul><p>Compression codec to use for compressing message sets.</p><p><br>Default: <code>0</code><br>Example: <code>CompressionTypes.None</code></p> |
| SecurityProtocol : `SecurityProtocols` | <p>Protocol used to communicate with brokers.</p><p>Possible values:</p><ul><li><code>Plaintext</code>:</li></ul><p>Protocol used to communicate with brokers.</p><ul><li><code>Ssl</code>:</li></ul><p>Protocol used to communicate with brokers.</p><ul><li><code>SaslPlaintext</code>:</li></ul><p>Protocol used to communicate with brokers.</p><ul><li><code>SaslSsl</code>:</li></ul><p>Protocol used to communicate with brokers.</p><p><br>Default: <code>0</code><br>Example: <code>SecurityProtocols.Plaintext</code></p>                                                                                                                                         |
| {% endtab %}                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

{% tab title="Parameter: Socket" %}

| Name                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SocketKeepaliveEnable : `Boolean`        | <p>Enable TCP keep-alives (SO\_KEEPALIVE) on broker sockets.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                 |
| SocketNagleDisable : `Boolean`           | <p>Disable the Nagle algorithm (TCP\_NODELAY) on broker sockets.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                             |
| SocketTimeoutMs : `Int32`                | <p>Default timeout for network requests.</p><p>ProduceRequests will use the lesser value of Socket.SocketTimeoutMs and remaining Options.MessageTimeoutMs for the first message in the batch.</p><p><br>Default: <code>60000</code><br>Example: <code>60000</code></p>                                                                                                                                                                |
| SocketConnectionSetupTimeoutMs : `Int32` | <p>Maximum time allowed for broker connection setup (TCP connection setup as well SSL and SASL handshake).</p><p>If the connection to the broker is not fully functional after this the connection will be closed and retried.</p><p><br>Default: <code>30000</code><br>Example: <code>30000</code></p>                                                                                                                               |
| SocketMaxFails : `Int32`                 | <p>Disconnect from broker when this number of Produce failures (e.g., timed out requests) is reached.</p><p>Disable with 0.</p><p>WARNING: It is highly recommended to leave this setting at its default value of 1 to avoid the client and broker to become desynchronized in case of request timeouts.</p><p>NOTE: The connection is automatically re-established.</p><p><br>Default: <code>1</code><br>Example: <code>1</code></p> |
| SocketReceiveBufferBytes : `Int32`       | <p>Broker socket receive buffer size.</p><p>0 = System default.</p><p><br>Default: <code>0</code><br>Example: <code>0</code></p>                                                                                                                                                                                                                                                                                                      |
| {% endtab %}                             |                                                                                                                                                                                                                                                                                                                                                                                                                                       |

{% tab title="Parameter: Sasl" %}

| Name                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| UseSasl : `Boolean`                              | <p>Use SASL.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SaslMechanism : `SaslMechanisms`                 | <p>SASL mechanism to use for authentication.</p><p>Possible values:</p><ul><li><code>Gssapi</code>:</li></ul><p>SASL mechanism to use for authentication.</p><ul><li><code>Plain</code>:</li></ul><p>SASL mechanism to use for authentication.</p><ul><li><code>ScramSha256</code>:</li></ul><p>SASL mechanism to use for authentication.</p><ul><li><code>ScramSha512</code>:</li></ul><p>SASL mechanism to use for authentication.</p><ul><li><code>OAuthBearer</code>:</li></ul><p>SASL mechanism to use for authentication.</p><p><br>Default: <code>1</code><br>Example: <code>SaslMechanisms.Plain</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                      |
| SaslUsername : `String`                          | <p>SASL username for use with the PLAIN, ScramSha256 or ScramSha512 mechanism.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleUser</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 🗝SaslPassword : `String`                        | <p>SASL password for use with the PLAIN, ScramSha256 or ScramSha512 mechanism.</p><p><br>Default: <code>-</code><br>Example: <code>ExamplePassword</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| SaslOauthbearerMethod : `SaslOauthbearerMethods` | <p>Set to "default" or "oidc" to control which login method to be used.</p><p>If set to "oidc", the following properties must also be be specified:</p><p>Sasl.SaslOauthbearerClientId,</p><p>Sasl.SaslOauthbearerClientSecret,</p><p>Sasl.SaslOauthbearerTokenEndpointUrl.</p><p>Possible values:</p><ul><li><code>Default</code>:</li></ul><p>Set to "default" or "oidc" to control which login method to be used.</p><p>If set to "oidc", the following properties must also be be specified:</p><p>Sasl.SaslOauthbearerClientId,</p><p>Sasl.SaslOauthbearerClientSecret,</p><p>Sasl.SaslOauthbearerTokenEndpointUrl.</p><ul><li><code>Oidc</code>:</li></ul><p>Set to "default" or "oidc" to control which login method to be used.</p><p>If set to "oidc", the following properties must also be be specified:</p><p>Sasl.SaslOauthbearerClientId,</p><p>Sasl.SaslOauthbearerClientSecret,</p><p>Sasl.SaslOauthbearerTokenEndpointUrl.</p><p><br>Default: <code>0</code><br>Example: <code>SaslOauthbearerMethod.Default</code></p> |
| SaslOauthbearerClientId : `String`               | <p>Public identifier for the application.</p><p>Must be unique across all clients that the authorization server handles.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleClient</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 🗝SaslOauthbearerClientSecret : `String`         | <p>Client secret only known to the application and the authorization server.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleSecret</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| SaslOauthbearerTokenEndpointUrl : `String`       | <p>OAuth/OIDC issuer token endpoint HTTP(S) URI used to retrieve token.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleURL</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SaslOauthbearerExtensions : `String`             | <p>Allow additional information to be provided to the broker.</p><p>Comma-separated list of key=value pairs. E.g., "supportFeatureX=true,organizationId=sales-emea".</p><p><br>Default: <code>-</code><br>Example: <code>supportFeatureX=true,organizationId=sales-emea</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| SaslOauthbearerScope : `String`                  | <p>Client use this to specify the scope of the access request to the broker.</p><p><br>Default: <code>-</code><br>Example: <code>ExampleScope</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SaslOauthbearerConfig : `String`                 | <p>SASL/OAUTHBEARER configuration.</p><p><br>Default: <code>-</code><br>Example: <code>principal=admin extension\_traceId=123</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SaslKerberosKeytab : `String`                    | <p>Path to Kerberos keytab file.</p><p>Only supported on Linux OS.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SaslKerberosMinTimeBeforeRelogin : `Int32`       | <p>Minimum time in milliseconds between key refresh attempts.</p><p>Disable automatic key refresh by setting this property to 0.</p><p>Only supported on Linux OS.</p><p><br>Default: <code>-</code><br>Example: <code>60000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| SaslKerberosPrincipal : `String`                 | <p>This client's Kerberos principal name.</p><p>Only supported on Linux OS.</p><p><br>Default: <code>-</code><br>Example: <code>kafkaclient</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| SaslKerberosServiceName : `String`               | <p>Kerberos principal name that Kafka runs as, not including /hostname\@REALM</p><p>Only supported on Linux OS.</p><p><br>Default: <code>-</code><br>Example: <code>kafka</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| {% endtab %}                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

{% tab title="Parameter: Ssl" %}

| Name                                                                       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| UseSsl : `Boolean`                                                         | <p>Use SSL.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SslEndpointIdentificationAlgorithm : `SslEndpointIdentificationAlgorithms` | <p>Endpoint identification algorithm to validate broker hostname using broker certificate.</p><p>https - Server (broker) hostname verification as specified in RFC2818.</p><p>none - No endpoint verification.</p><p>OpenSSL >= 1.0.2 required.</p><p>Possible values:</p><ul><li><code>None</code>:</li></ul><p>Endpoint identification algorithm to validate broker hostname using broker certificate.</p><p>https - Server (broker) hostname verification as specified in RFC2818.</p><p>none - No endpoint verification.</p><p>OpenSSL >= 1.0.2 required.</p><ul><li><code>Https</code>:</li></ul><p>Endpoint identification algorithm to validate broker hostname using broker certificate.</p><p>https - Server (broker) hostname verification as specified in RFC2818.</p><p>none - No endpoint verification.</p><p>OpenSSL >= 1.0.2 required.</p><p><br>Default: <code>0</code><br>Example: <code>SslEndpointIdentificationAlgorithm.None</code></p> |
| EnableSslCertificateVerification : `Boolean`                               | <p>Enable OpenSSL's builtin broker (server) certificate verification.</p><p><br>Default: <code>True</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SslCertificateLocation : `String`                                          | <p>Path to client's public key (PEM) used for authentication.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SslCaLocation : `String`                                                   | <p>File or directory path to CA certificate(s) for verifying the broker's key.</p><p><br>Default: <code>-</code><br>Example: <code>Root</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| SslKeyLocation : `String`                                                  | <p>Path to client's private key (PEM) used for authentication.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| SslKeystoreLocation : `String`                                             | <p>Path to client's keystore (PKCS#12) used for authentication.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| SslEngineLocation : `String`                                               | <p>Path to OpenSSL engine library.</p><p>OpenSSL >= 1.1.0 required.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SslCrlLocation : `String`                                                  | <p>Path to CRL for verifying broker's certificate validity.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 🗝SslCertificatePem : `String`                                             | <p>Client's public key string (PEM format) used for authentication.</p><p><br>Default: <code>-</code><br>Example: <code>—–BEGIN PRIVATE KEY—–MIIES42Cg6zn—–END PRIVATE KEY—–</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 🗝SslCaPem : `String`                                                      | <p>A certificate string (PEM format) for verifying the broker's key.</p><p><br>Default: <code>-</code><br>Example: <code>—–BEGIN PRIVATE KEY—–MIIES42Cg6zn—–END PRIVATE KEY—–</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 🗝SslKeyPem : `String`                                                     | <p>Client's private key string (PEM format) used for authentication.</p><p><br>Default: <code>-</code><br>Example: <code>—–BEGIN PRIVATE KEY—–MIIES42Cg6zn—–END PRIVATE KEY—–</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SslCaCertificateStores : `String`                                          | <p>Comma-separated list of Windows Certificate stores to load CA certificates from.</p><p>Certificates will be loaded in the same order as stores are specified.</p><p>If no certificates can be loaded from any of the specified stores an error is logged and the OpenSSL library's default CA location is used instead.</p><p><br>Default: <code>Root</code><br>Example: <code>Root</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 🗝SslKeystorePassword : `String`                                           | <p>Client's keystore (PKCS#12) password.</p><p><br>Default: <code>-</code><br>Example: <code>ExamplePassword</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 🗝SslKeyPassword : `String`                                                | <p>Private key passphrase for use with Ssl.SslKeyLocation)</p><p><br>Default: <code>-</code><br>Example: <code>ExamplePassword</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SslCipherSuites : `String`                                                 | <p>A cipher suite 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.</p><p><br>Default: <code>-</code><br>Example: <code>foo</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| SslCurvesList : `String`                                                   | <p>The supported-curves extension in the TLS ClientHello message specifies the curves (standard/named, or 'explicit' GF(2^k) or GF(p)) the client is willing to have the server use.</p><p><br>Default: <code>-</code><br>Example: <code>1</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SslSigalgsList : `String`                                                  | <p>The client uses the TLS ClientHello signature\_algorithms extension to indicate to the server which signature/hash algorithm pairs may be used in digital signatures.</p><p><br>Default: <code>-</code><br>Example: <code>1</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| {% endtab %}                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

{% tab title="Parameter: SchemaRegistry" %}

| Name                                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| UseSchemaRegistry : `Boolean`                         | <p>Use Avro schema registry.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SchemaRegistryUrl : `String`                          | <p>A comma-separated list of URLs for schema registry instances that are used to register or lookup schemas.</p><p><br>Default: <code>-</code><br>Example: <code><http://localhost:8081></code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| BasicAuthCredentialsSource : `AuthCredentialsSources` | <p>Authentication credentials source.</p><p>UserInfo = Credentials are specified via the BasicAuthUserInfo property in the form username:password. If BasicAuthUserInfo is not set, authentication is disabled.</p><p>SaslInherit = Credentials are specified via the <code>Sasl.SaslUsername</code> and <code>Sasl.SaslPassword</code> parameters.</p><p>Possible values:</p><ul><li><code>UserInfo</code>:</li></ul><p>Authentication credentials source.</p><p>UserInfo = Credentials are specified via the BasicAuthUserInfo property in the form username:password. If BasicAuthUserInfo is not set, authentication is disabled.</p><p>SaslInherit = Credentials are specified via the <code>Sasl.SaslUsername</code> and <code>Sasl.SaslPassword</code> parameters.</p><ul><li><code>SaslInherit</code>:</li></ul><p>Authentication credentials source.</p><p>UserInfo = Credentials are specified via the BasicAuthUserInfo property in the form username:password. If BasicAuthUserInfo is not set, authentication is disabled.</p><p>SaslInherit = Credentials are specified via the <code>Sasl.SaslUsername</code> and <code>Sasl.SaslPassword</code> parameters.</p><p><br>Default: <code>0</code><br>Example: <code>AuthCredentialsSource.UserInfo</code></p> |
| 🗝BasicAuthUserInfo : `String`                        | <p>Basic auth credentials in the form {username}:{password}.</p><p><br>Default: <code>-</code><br>Example: <code>foo:bar</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| EnableSslCertificateVerification : `Boolean`          | <p>Enable SSL verification.</p><p>Disabling SSL verification is insecure and should only be done for reasons of convenience in test/dev environments.</p><p><br>Default: <code>True</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| MaxCachedSchemas : `Int32`                            | <p>Specifies the maximum number of schemas CachedSchemaRegistryClient should cache locally.</p><p><br>Default: <code>1000</code><br>Example: <code>1000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| RequestTimeoutMs : `Int32`                            | <p>Specifies the timeout for requests to Confluent Schema Registry.</p><p><br>Default: <code>30000</code><br>Example: <code>30000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SslCaLocation : `String`                              | <p>File path to CA certificate(s) for verifying the Schema Registry's key.</p><p>System CA certs will be used if not specified.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SslKeystoreLocation : `String`                        | <p>SSL keystore (PKCS#12) location.</p><p><br>Default: <code>-</code><br>Example: <code>/path/to/your/file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SslKeystorePassword : `String`                        | <p>SSL keystore (PKCS#12) password.</p><p><br>Default: <code>-</code><br>Example: <code>foo</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SchemaJson : `String`                                 | <p>Schema JSON.</p><p><br>Default: <code>-</code><br>Example: <code>{ "fields": \[ { "name": "intField", "type": "int" }, { "name": "longField", "type": "long" }, { "name": "floatField", "type": "float" }, { "name": "doubleField", "type": "double" }, { "name": "booleanField", "type": "boolean" }, { "name": "stringField", "type": "string" }, { "name": "nullField", "type": "null" }, { "name": "bytesField", "type": "bytes" }, { "name": "enumField", "type": { "name": "Colors", "symbols": \[ "RED", "GREEN", "BLUE" ], "type": "enum" } }, { "name": "arrayField", "type": { "items": "string", "type": "array" } }, { "name": "mapField", "type": { "type": "map", "values": "int" } }, { "name": "fixedField", "type": { "name": "FourBytes", "size": 4, "type": "fixed" } }, { "name": "unionField", "type": \[ "null", "string" ] }, { "name": "recordField", "type": { "fields": \[ { "name": "nestedField", "type": "string" } ], "name": "NestedRecord", "type": "record" } } ], "name": "sampleRecord", "namespace": "com.mycorp.mynamespace", "type": "record" }</code></p>                                                                                                                                                                       |
| Records : `String`                                    | <p>Field values as an JSON array.</p><p><br>Default: <code>-</code><br>Example: <code>{ "intField": 123, "longField": 1234567890, "floatField": 1.23, "doubleField": 1.23456789, "booleanField": true, "stringField": "Hello, World!", "nullField": null, "bytesField": "dGVzdDE=", "enumField": "RED", "arrayField": \["item1", "item2", "item3"], "mapField": { "key1": 1, "key2": 2, "key3": 3 }, "fixedField": "YWJjZA==", "unionField": "Hello, Union!", "recordField": { "nestedField": "Hello, Nested!" } }</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| {% endtab %}                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

{% tab title="Parameter: Options" %}

| Name                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Acks : `Ack`                        | <p>This field indicates the number of acknowledgements the leader broker must receive from ISR brokers before responding to the request.</p><p>Possible values:</p><ul><li><code>None</code>:</li></ul><p>This field indicates the number of acknowledgements the leader broker must receive from ISR brokers before responding to the request.</p><ul><li><code>Leader</code>:</li></ul><p>This field indicates the number of acknowledgements the leader broker must receive from ISR brokers before responding to the request.</p><ul><li><code>All</code>:</li></ul><p>This field indicates the number of acknowledgements the leader broker must receive from ISR brokers before responding to the request.</p><p><br>Default: <code>0</code><br>Example: <code>Ack.None</code></p>                                      |
| EnableIdempotence : `Boolean`       | <p>When set to true, the producer will ensure that messages are successfully produced exactly once and in the original produce order.</p><p>The following configuration properties are adjusted automatically (if not modified by the user) when idempotence is enabled:</p><p>Options.MaxInFlight=5 (must be less than or equal to 5),</p><p>Options.MessageProduceMaxRetries=2147483647 (must be greater than 0),</p><p>Options.Ack.All,</p><p>Producer instantation will fail if user-supplied configuration is incompatible.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                     |
| LingerMs : `Int32`                  | <p>Delay in milliseconds to wait for messages in the producer queue to accumulate before constructing message batches (MessageSets) to transmit to brokers.</p><p>A higher value allows larger and more effective (less overhead, improved compression) batches of messages to accumulate at the expense of increased message delivery latency.</p><p><br>Default: <code>5</code><br>Example: <code>5</code></p>                                                                                                                                                                                                                                                                                                                                                                                                              |
| MaxInFlight : `Int32`               | <p>Maximum number of in-flight requests per broker connection.</p><p>This is a generic property applied to all broker communication, however it is primarily relevant to produce requests.</p><p>In particular, note that other mechanisms limit the number of outstanding consumer fetch request per broker to one.</p><p><br>Default: <code>1000000</code><br>Example: <code>1000000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                             |
| MessageTimeoutMs : `Int32`          | <p>Local message timeout. This value is only enforced locally and limits the time a produced message waits for successful delivery. A time of 0 is infinite.</p><p>This is the maximum time librdkafka may use to deliver a message (including retries).</p><p>Delivery error occurs when either the retry count or the message timeout are exceeded.</p><p>The message timeout is automatically adjusted to TransactionTimeoutMs if Options.TransactionalId is configured.</p><p><br>Default: <code>300000</code><br>Example: <code>300000</code></p>                                                                                                                                                                                                                                                                        |
| MessageMaxBytes : `Int32`           | <p>Maximum Kafka protocol request message size.</p><p>Due to differing framing overhead between protocol versions the producer is unable to reliably enforce a strict max message limit at produce time and may exceed the maximum size by one message in protocol ProduceRequests, the broker will enforce the the topic's Options.MessageMaxBytes limit (see Apache Kafka documentation)</p><p><br>Default: <code>1000000</code><br>Example: <code>1000000</code></p>                                                                                                                                                                                                                                                                                                                                                       |
| MessageSendMaxRetries : `Int32`     | <p>How many times to retry sending a failing Message.</p><p>Retrying may cause reordering unless Options.EnableIdempotence is set to true.</p><p><br>Default: <code>2147483647</code><br>Example: <code>-</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Partitioner : `Partitioners`        | <p>Partitioner.</p><p>Possible values:</p><ul><li><code>Random</code>:</li></ul><p>Partitioner.</p><ul><li><code>Consistent</code>:</li></ul><p>Partitioner.</p><ul><li><code>ConsistentRandom</code>:</li></ul><p>Partitioner.</p><ul><li><code>Murmur2</code>:</li></ul><p>Partitioner.</p><ul><li><code>Murmur2Random</code>:</li></ul><p>Partitioner.</p><p><br>Default: <code>2</code><br>Example: <code>Partitioners.ConsistentRandom</code></p>                                                                                                                                                                                                                                                                                                                                                                        |
| QueueBufferingMaxKbytes : `Int32`   | <p>Maximum total message size sum allowed on the producer queue.</p><p>This queue is shared by all topics and partitions.</p><p>This property has higher priority than Options.QueueBufferingMaxMessages.</p><p><br>Default: <code>1048576</code><br>Example: <code>1048576</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| QueueBufferingMaxMessages : `Int32` | <p>Maximum number of messages allowed on the producer queue. This queue is shared by all topics and partitions.</p><p><br>Default: <code>100000</code><br>Example: <code>100000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| TransactionalId : `String`          | <p>Enables the transactional producer.</p><p>Used to identify the same transactional producer instance across process restarts.</p><p>It allows the producer to guarantee that transactions corresponding to earlier instances of the same producer have been finalized prior to starting any new transactions, and that any zombie instances are fenced off.</p><p>If no TransactionalId is provided, then the producer is limited to idempotent delivery (if Options.EnableIdempotence is set). Requires broker version >= 0.11.0.</p><p><br>Default: <code>-</code><br>Example: <code>1</code></p>                                                                                                                                                                                                                         |
| TransactionTimeoutMs : `Int32`      | <p>The maximum amount of time in milliseconds that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.</p><p>If this value is larger than the <code>transaction.max.timeout.ms</code> setting in the broker, the call will fail with Timeout error.</p><p>The transaction timeout automatically adjusts Options.MessageTimeoutMs and Socket.SocketTimeoutMs, unless explicitly configured in which case they must not exceed the transaction timeout (Socket.SocketTimeoutMs must be at least 100ms lower than Options.TransactionTimeoutMs).</p><p>This is also the default timeout value if no timeout (-1) is supplied to the transactional API methods.</p><p><br>Default: <code>60000</code><br>Example: <code>60000</code></p> |
| Debug : `String`                    | <p>A comma-separated list of debug contexts to enable.</p><p>Detailed Producer debugging: broker,topic,msg.</p><p><br>Default: <code>-</code><br>Example: <code>broker</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| {% endtab %}                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

{% tab title="Result: Result" %}

| Name                | Description                                                                     |
| ------------------- | ------------------------------------------------------------------------------- |
| Success : `Boolean` | <p>True if message was produced successfully.<br>Example: <code>true</code></p> |
| Data : `Object`     | <p>Produce result.<br>Example: <code>PossiblyPersisted</code></p>               |
| {% endtab %}        |                                                                                 |

{% tab title="Changelog" %}

## Changelog

### \[2.0.0] - 2024-05-14

#### Added

* Support for Confluent Schema Registry based Avro.
* New parameter Options.Debug.

#### Changed

* Result.Status and Result.Timestamp have been replaced by Result.Data.
* Changed how partitions are handled when producing message. See Input.Partition description.
* All but Kerberos SASL settings can be used on Windows platform.
* Confluent.Kafka updated from version 1.9.3 to 2.4.
* Parameter removed: Options.ApiVersionRequest.

### \[1.2.0] - 2023-10-11

#### Changed

* Input.Message will no longer be serialized into JSON text before sending.

### \[1.1.0] - 2023-09-01

#### Added

* Input.Partition, set the partition.
* Input.Key, set message key.

### \[1.0.1] - 2023-04-04

#### Fixed

* Changed Task to set ssl.SslCaCertificateStores only if it's set as parameter.

### \[1.0.0] - 2022-10-19

#### Added

* Initial implementation
  {% endtab %}
  {% endtabs %}
