kafka/examples
Kaushik Raina 574516dcbf
KAFKA-19309 : Add transaction client template code in kafka examples (#15913)
This pull request introduces a new example application,
`TransactionalClientDemo`, which demonstrates how to use Kafka's
transactional capabilities for exactly-once processing semantics. The
application consumes messages from an input topic, processes them to
generate word count statistics, and produces the results to an output
topic. It also includes robust error handling and transaction
management.

### Key Changes:
* Added `TransactionalClientDemo` class to demonstrate a transactional
Kafka client application. It handles consuming messages, processing
them, and producing results to an output topic while ensuring
exactly-once processing semantics.
* Implements transactional error handling based on KIP-1050 guidelines,
including handling `TransactionAbortableException`,
`InvalidConfigurationException`, `ApplicationRecoverableException`, and
generic `KafkaException`.

Ref :

[KIP-1050](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1050%3A+Consistent+error+handling+for+Transactions)

Reviewers: Justine Olshan <jolshan@confluent.io>, Artem Livshits
 <alivshits@confluent.io>
2025-06-06 08:13:54 -07:00
..
bin KAFKA-9922: Update demo instructions in examples README (#8559) 2020-04-29 19:31:26 -07:00
src/main/java/kafka/examples KAFKA-19309 : Add transaction client template code in kafka examples (#15913) 2025-06-06 08:13:54 -07:00
README.md KAFKA-14752: Kafka examples improvements - demo changes (#13517) 2023-05-12 10:39:12 +08:00

README.md

Kafka client examples

This module contains some Kafka client examples.

  1. Start a Kafka 2.5+ local cluster with a plain listener configured on port 9092.
  2. Run examples/bin/java-producer-consumer-demo.sh 10000 to asynchronously send 10k records to topic1 and consume them.
  3. Run examples/bin/java-producer-consumer-demo.sh 10000 sync to synchronous send 10k records to topic1 and consume them.
  4. Run examples/bin/exactly-once-demo.sh 6 3 10000 to create input-topic and output-topic with 6 partitions each, start 3 transactional application instances and process 10k records.