KafkaOptions
How Wow reaches Kafka (kafka-clients only): the bootstrapServers, and properties passed to every producer and consumer as they are (security, client id, timeouts, batching, ...).
A few settings are Wow's and win over properties, since the transport's guarantees rest on them:
the producer is idempotent with
acks=all(producerConfig): an acknowledged message is on every in-sync replica, and a retry within the producer writes no duplicate;a consumer has no group and commits nothing (consumerConfig): the runtime assigns partitions by its leases and keeps the offsets in its checkpoint store; it resets no offset on its own (
auto.offset.reset=none): a read whose offset is no longer retained is an offset gap, which the source handles by its OffsetGapPolicy; asking about a topic never creates it (allow.auto.create.topics=false), so a topic is made only by its owner, by an operator or bywow.kafka.ddl=auto, with the partitions it needs;keys are strings, values bytes.
pollTimeout bounds one poll of a source's read, so a cancelled read stops within it. metadataMaxAge is the consumers' metadata.max.age.ms unless properties set it: the longest before a consumer sees partitions added to a topic it reads, 30 seconds instead of Kafka's 5 minutes.
Fields may be added: Wow builds it from the host's configuration, so the constructor is internal to Wow.
Properties
Functions
The configuration of a consumer, named clientId (client.id) when given: after the client.id of properties when that is set, so an operator's prefix stays, else after wow.
The configuration of a producer.