Kafka Capture Point
Options for the integrated Kafka Capture Point are configured in the following sections on the Options tab of the Kafka Capture Point application:
- consumer-options Section
- custom-options-provider Section
- default-values Section
- inbound-transformer-parameters Section
- notification-filtering Section
- outbound-transformer-parameters Section
- producer-options Section
- settings Section
As the Java Kafka client used for communication with the Kafka cluster, the integrated Kafka Capture Point supports additional standard Apache Kafka configuration options, as discussed under:
consumer-options Section
In addition to the options that are defined in this section, the Integrated Kafka Capture Point supports native Apache Kafka consumer options. See Advanced Java Kafka Client Options and Security Configuration for more information.
auto.offset.reset
Default Value: earliest
Valid Values: latest, earliest, none
Changes Take Effect: Upon restart
Specifies what to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server.
The following values are supported:
earliest: automatically reset the offset to the earliest offset
latest: automatically reset the offset to the latest offset
none: throw exception to the consumer if no previous offset is found for the consumer's group
max.poll.interval.ms
Default Value: 600000
Valid Values: Any integer greater than 1
Changes Take Effect: Upon restart
The maximum delay between invocations of poll().
This places an upper bound on the amount of time that the consumer can be idle before fetching more records.
If poll() is not called before expiration of this timeout,
then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member.
max.poll.records
Default Value: 20
Valid Values: Any integer greater than 1
Changes Take Effect: Upon restart
The maximum number of records returned in a single call to poll().
custom-options-provider Section
class-name
Default Value:
Valid Values: Any string
Changes Take Effect: Upon restart
Specifies the full Java class name of the custom Kafka Options Provider.
Object of this class will be created by Kafka Capture Point on start
if this option is not empty.
default-values Section
InteractionSubtype
Default Value: InboundNew
Valid Values: any of the subtypes defined
Changes Take Effect: Upon restart
Specifies the interaction subtype.
InteractionType
Default Value: Inbound
Valid Values: any of the types defined
Changes Take Effect: Upon restart
Specifies the interaction type.
MediaType
Default Value: workitem
Valid Values: any of the media types defined
Changes Take Effect: Upon restart
Specifies the interaction media type.
inbound-transformer-parameters Section
AllowAnyAttributes
Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart
Specifies whether the provided iWD inbound transformation script should
copy any unknown message attributes along with all of the known message
attributes into the transformed inbound message. If set to true, all attributes
from the inbound iWD message are copied into transformed message. If set
false, only known attributes are copied and all of the other attributes are
ignored. The list of known attributes is defined in the inbound iWD
transformation script and can be customized.
CancelQueues
Default Value: iWD_Canceled
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction cancellation. This parameter is used by iWD specific transformation to transform request CancelTask by providing queue name to [update] request.
CaseSensitiveActions
Default Value: false
Valid Values: false, true
Changes Take Effect: Upon restart
If set to false, the transformation script ignores the letter case of action names.
CaseSensitiveAttributes
Default Value: false
Valid Values: false, true
Changes Take Effect: Upon restart
If set to false, the transformation script ignores letter case of known
attribute names (including Ext and Data section names).
CompleteQueues
Default Value: iWD_Completed
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction completion. This parameter is used by iWD specific transformation to transform request CompleteTask by providing queue name to [update] request.
ExtendedAttributes
Default Value:
Valid Values: List of attribute names separated by comma
Changes Take Effect: Upon restart
Specifies list of attribute names that are expected under [Ext] tag in CreateTask request. This parameter is used by iWD specific transformation.
RestartQueues
Default Value: iWD_New
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction restart. This parameter is used by iWD specific transformation to transform request RestartTask by providing queue name to [update] request.
SchemaDocumentPath
Default Value: ./iwd_scripts/iwd_messages.xsd
Valid Values: Path to xsd document
Changes Take Effect: Upon restart
If configured, this option specifies the file name that contains xml schema document that the inbound transformation script should use for validation.
notification-filtering Section
disable-unsolicited-notifications
Default Value: false
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart
If set to true or yes, the capture point will not store any unsolicited notifications about the interactions that are submitted by this capture point.
notify-assigned
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about an agent being added as a party on an interaction.
notify-changed
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about interaction property changes.
notify-created
Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about newly submitted interactions.
notify-error
Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about capture point requests resulting in errors.
notify-held
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about interactions being put on hold.
notify-moved
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about interactions being placed in a queue or workbin.
notify-resumed
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about interactions being resumed.
notify-route-requested
Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about a strategy being added as a party on an interaction.
notify-stopped
Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart
If set to false or no, the capture point will not store notifications about interactions being stopped (terminated).
outbound-transformer-parameters Section
CancelQueues
Default Value: iWD_Canceled
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction cancellation. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskCancelled] notification.
CompleteQueues
Default Value: iWD_Completed
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction completion. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskCompleted] notification.
ErrorHeldQueues
Default Value: iWD_ErrorHeld
Valid Values: An empty string, or any valid queue name
Changes Take Effect: Upon restart
(iWD specific) Specifies a comma-separated list of queue names for interactions that are held because of a configuration error (such as incomplete rules).
ExtendedAttributes
Default Value:
Valid Values: List of attribute names separated by comma
Changes Take Effect: Upon restart
Specifies list of attribute names that are expected under [Ext] tag in [TaskCreated] notification. This parameter is used by iWD specific transformation.
RejectQueues
Default Value: iWD_Rejected
Valid Values: An empty string, or any valid queue name
Changes Take Effect: Upon restart
(iWD specific) Specifies a comma-separated list of queue names for rejected interactions.
RestartQueues
Default Value: iWD_New
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart
Specifies list of queue names designated for interaction restart. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskRestarted] notification.
producer-options Section
In addition to the options that are defined in this section, the Integrated Kafka Capture Point supports native Apache Kafka producer options. See Advanced Java Kafka Client Options and Security Configuration for more information.
retries
Default Value: 10
Valid Values: Any integer from zero to 2147483647
Changes Take Effect: Upon restart
Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.
settings Section
- after-rollback-delay
- capture-point-type
- consumer-group
- consumer-receive-timeout
- copy-original-headers-in-reply
- correlation-id-header-key
- error-topic-name
- inbound-topic-name
- include-ids-in-duplicate-error
- kafka-server
- notification-topic-name
- number-outbound-threads
- number-receiving-sessions
- output-queue-size
- processed-topic-name
- reconnect-timeout
- rollback-on-transformation-fail
- xsl-inbound-transform-path
- xsl-outbound-transform-path
after-rollback-delay
Default Value: 30
Valid Values: Any integer from 1-300
Changes Take Effect: Upon restart
Specifies the timeout (in seconds) to wait before attempting to process inbound messages after previous rollback.
This option controls how long Interaction Server waits before retrying message processing after recoverable error.
capture-point-type
Default Value: kafka
Valid Values: jms, file, db, webservice, kafka
Changes Take Effect: Upon restart
Specifies the Capture Point type. The following types are supported:
jms - JMS Capture Point
file -File Capture Point
db - DB Capture Point
webservice - Web Service Capture Point
kafka - Kafka Capture Point
The value must be set to kafka so the Capture Point is configured to work via Apache Kafka.
consumer-group
Default Value: InteractionServer
Valid Values: Valid String
Changes Take Effect: Upon restart
A unique string that identifies the consumer group this Capture Point assigned to.
The consumer groups functionality is used for balancing partitions among receiving threads and keeping track of the processed messages.
For the correct work this option should be set once and never changed.
consumer-receive-timeout
Default Value: 1000
Valid Values: Any integer from 200-5000
Changes Take Effect: Upon restart
Specifies the timeout (in milliseconds) on the message consumer blocking receive method.
copy-original-headers-in-reply
Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart
When this option is set to true, all Kafka message headers of the request will be copied to the Kafka message headers of the reply.
When the value is false, the replies to requests have only the message ID and correlation ID headers (if present).
correlation-id-header-key
Default Value: CorrelationID
Valid Values: Any string
Changes Take Effect: Upon restart
Specifies the key on which the correlation ID is read from the message header.
error-topic-name
Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart
Specifies the error topic for the capture point.
inbound-topic-name
Default Value: [required]
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart
Specifies the inbound topic for the capture point.
include-ids-in-duplicate-error
Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart
If set to true, the duplicate id error includes interaction id and external id, if available.
kafka-server
Default Value: [required]
Valid Values: Non-null string with comma separated pairs of host:port.
Changes Take Effect: Upon restart
A list of host:port pairs to use for establishing the initial connection to the Kafka cluster.
Value of this option is passed to underlying Java Kafka client in "bootstrap.servers" option as is.
notification-topic-name
Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart
Specifies the topic for notification messages for the capture point.
number-outbound-threads
Default Value: 4
Valid Values: Any integer from 1-20
Changes Take Effect: Upon restart
Specifies the number of threads Interaction Server allocates to transform and send unsolicited notification messages.
number-receiving-sessions
Default Value: 4
Valid Values: Any integer from 1-20
Changes Take Effect: Upon restart
Specifies the number of receiving sessions consuming from the inbound Kafka topic.
output-queue-size
Default Value: 5000
Valid Values: Any integer from 1000-20000
Changes Take Effect: Upon restart
Specifies the maximum number of unsolicited notification messages a capture point can buffer.
processed-topic-name
Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart
Specifies the topic for processed messages for the capture point.
reconnect-timeout
Default Value: 10
Valid Values: Any integer from 3 to 30
Changes Take Effect: Upon restart
Specifies the time interval (in seconds) between the reconnect attempts in case a connection with the corresponding Kafka cluster is broken.
rollback-on-transformation-fail
Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart
Specifies how Interaction Server should behave when inbound message transformation fails.
If the option is set to true, Interaction Server rolls back the transaction and attempts processing later.
xsl-inbound-transform-path
Default Value: ./iwd_scripts/iWD2IxnServerTransformer.groovy
Valid Values: The transformation script file name that is relative to the working directory
Changes Take Effect: Upon restart
Specifies the location of the inbound transformation script.
xsl-outbound-transform-path
Default Value: ./iwd_scripts/IxnServer2iWDTransformer.groovy
Valid Values: The transformation script file name that is relative to the working directory
Changes Take Effect: Upon restart
Specifies the location of the outbound transformation script.
Advanced Java Kafka Client Options
You can customize the majority of the Java Kafka client options in the following Capture Point configuration sections:
- consumer-options - Options specified in this section are passed to the Java Kafka consumers as is. Consumers are used to read inbound messages from the Kafka cluster. The full list of Apache Kafka consumer options is on the official page.
- producer-options - Options specified in this section are passed to the Java Kafka producers as is. Producers are used to send outbound messages to the Kafka cluster. The full list of Apache Kafka producer options is on the official page.
- bootstrap.servers (settings\kafka-server) - The value of kafka-server under the settings section is passed to boostrap.servers, as Interaction Server uses the same broker for producer and consumer.
- group.id - The value of consumer-group under the settings section is passed to group.id, and its value is set to InteractionServer by default.
- enable.auto.commit - The value of this option is hardcoded to false, as Interaction Server guarantees “at least once” delivery.
Security Configuration
The Java Kafka client library provides secured communications. Refer to the official Kafka documentation for more information. Necessary options mentioned in the Kafka documentation can be set in the consumer-options and producer-options sections.
Kafka protected options
You can hide the values of the following sensitive Kafka client options by putting them into the password option in the following sections:
Original Section | Original Option | Protected Section | Protected Option |
---|---|---|---|
consumer-options | ssl.keystore.password | consumer-options:ssl.keystore.password | password |
consumer-options | ssl.truststore.password | consumer-options:ssl.truststore.password | password |
consumer-options | sasl.jaas.config | consumer-options:sasl.jaas.config | password |
producer-options | ssl.keystore.password | consumer-options:ssl.keystore.password | password |
producer-options | ssl.truststore.password | producer-options:ssl.truststore.password | password |
producer-options | sasl.jaas.config | producer-options:sasl.jaas.config | password |
Kafka Capture Point with SASL_PLAINTEXT security module configuration
In the Kafka Capture Point application options,
- Under the consumer-options section, add the following options:
- sasl.mechanism = PLAIN
- security.protocol = SASL_PLAINTEXT
- sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- Under the producer-options section, add the following options:
- sasl.mechanism = PLAIN
- security.protocol = SASL_PLAINTEXT
- sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
To secure the secret values, create the following configuration with the Kafka protected options:
- Create a new section, consumer-options:sasl.jaas.config. You can do the same for producer-options as well. Note: Add this section instead of adding sasl.jaas.config in consumer-options and producer-options.
- Within the new section, create a new option, password.
- Insert the whole JAAS configuration as the value for password (that is, the value mentioned in sasl.jaas.config in the producer-options or consumer-options section). Genesys Administrator Extension (GAX) will automatically mask the password value.
- The resulting configuration looks like the following:
- [consumer-options:sasl.jaas.config]
- password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- [producer-options:sasl.jaas.config]
- password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- [consumer-options:sasl.jaas.config]
- The resulting configuration looks like the following:
Kafka Capture Point with SASL_SSL security module configuration
In the Kafka Capture Point application options,
- Under the consumer-options and producer-options sections, add the following options:
- sasl.mechanism = PLAIN
- security.protocol = SASL_SSL
- sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
- ssl.keystore.location=loation_of_Key\client.keystore.jks
- ssl.keystore.type=JKS
- ssl.truststore.location=location_of_Cert\client.truststore.jks
- ssl.truststore.type=JKS
- ssl.keystore.password=The store password for the key store file
- ssl.truststore.password=The store password for the trust store file
- To secure the secret values, create the following configuration with the Kafka protected options:
- Create a new section, consumer-options:sasl.jaas.config. You can do the same for producer-options as well. Note: Add this section instead of adding sasl.jaas.config in consumer-options and producer-options.
- Within the new section, create a new option, password.
- Insert the whole JAAS configuration as the value for password (that is, the value mentioned in sasl.jaas.config in the producer-options or consumer-options section). Genesys Administrator Extension (GAX) will automatically mask the password value.
- The resulting configuration looks like the following:
- [consumer-options:sasl.jaas.config]
- password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- [producer-options:sasl.jaas.config]
- password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
- [consumer-options:sasl.jaas.config]
- The resulting configuration looks like the following:
Similarly, you can mask the password values under the options ssl.keystore.password and ssl.truststore.password by creating separate sections described in the following configuration:
- [consumer-options:ssl.keystore.password]
- password= The store password for the key store file
- [consumer-options:ssl.truststore.password]
- password= The password for the trust store file
- [producer-options:ssl.keystore.password]
- password= The store password for the key store file
- [producer-options:ssl.truststore.password]
- password= The password for the trust store file