GitHub user apurvam opened a pull request: https://github.com/apache/kafka/pull/2809
CPKAFKA-465 : Exactly once transactional producer -- initial implementation The basic flow works: find coordinator, get pid, add partitions to transaction, commit/abort. Still to add: 1. 'sendOffsets' implementation. 2. error handling. 3. failure test cases. You can merge this pull request into a Git repository by running: $ git pull https://github.com/apurvam/kafka exactly-once-transactional-producer Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/2809.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2809 ---- commit 40fa5f01866da411f1631c520ac6400a6ea9b6ba Author: Guozhang Wang <wangg...@gmail.com> Date: 2017-03-02T01:42:49Z Transaction log message format (#134) * add transaction log message format * add transaction timeout to initPid request * collapse to one message type commit 1b2df91b19dacf2cd8a5548c86b227104e8bbc67 Author: hachikuji <ja...@confluent.io> Date: 2017-03-07T00:40:53Z Implement FindCoordinatorRequest for transaction coordinator (#140) commit 7a681649ec14e4b00df734fe584bd9dbb955e379 Author: hachikuji <ja...@confluent.io> Date: 2017-03-08T07:00:19Z Exactly once transactions request types (#141) commit a9c32758592112750569f7fd41b538e7500dc959 Author: Apurva Mehta <apu...@confluent.io> Date: 2017-03-15T20:47:25Z Fix build and test errors due to reabse onto idempotent-producer branch commit 20701f17c20e8121d125bdc11008fb9407f54d11 Author: Guozhang Wang <wangg...@gmail.com> Date: 2017-03-17T05:40:49Z Transaction log partition Immigration and Emigration (#142) * sub-package transaction and group classes within coordinator * add loading and cleaning up logic * add transaction configs commit 711657e3b3dead9c7612965def930d01daea6592 Author: Guozhang Wang <wangg...@gmail.com> Date: 2017-03-21T04:38:35Z Add transactions broker configs (#146) * add all broker-side configs * check for transaction timeout value * added one more exception type commit bb5c14fd2473abc1b340fcd6d3c5d0dbd787f4a4 Author: Apurva Mehta <apurva.1...@gmail.com> Date: 2017-03-30T22:13:11Z CPKAFKA-465 : Implement READ_COMMITTED mode in the KafkaConsumer (#145) commit 109ee0e4e7605f92885f6f1994c4efddb42bcc50 Author: Guozhang Wang <wangg...@gmail.com> Date: 2017-03-31T22:20:05Z Handle addPartitions and addOffsets on TC (#147) * handling add offsets to txn * add a pending state with prepareTransition / completeTransaction / abortTransition of state * refactor handling logic for multiple in-flight requests commit 846ea79a109e3cb9912832c2a9ed77700b066ef7 Author: Apurva Mehta <apu...@confluent.io> Date: 2017-04-03T21:17:25Z Fix test errors after rebase: 1. Notable conflicts are with the small API changes to DelayedOperation and the newly introduced purgeDataBefore PR. 2. Jason's update to support streaming decompression required a bit of an overhaul to the way we handle aborted transactions on the consumer. commit b02ae405118cae0385c12ba0abb7e935043752c1 Author: Apurva Mehta <apu...@confluent.io> Date: 2017-03-17T19:04:15Z Initial plumbing for transactional producer. commit e6b8be80415b525a2b006171bebc8c10ecbe3d9e Author: Apurva Mehta <apu...@confluent.io> Date: 2017-04-05T04:46:00Z Initial implementation of the transactional producer commit 413696955bda029019f914e6f8bc758912a59f2d Author: Apurva Mehta <apu...@confluent.io> Date: 2017-04-05T06:35:07Z Initial commit of transactional producer ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---