My previous email didn't clarify the question clearly, so I'll try to make it in detail.
In this jira's(https://issues.apache.org/jira/browse/ROCKETMQ-123) description: Implement a TransactionProducer and LocalTransactionChecker, guarantee message delivery and local transaction operations are atomic. The following is the simple transactional messaging flow: 1. TransactionProducer sends a half message to the broker. A half message means it's not confirmed and can't be delivered to the consumer. 2. TransactionProducer executes the specific local transaction. 3. Commit or Rollback the half message according to the status of the local transaction. A half message will be deleted if it's rollbacked and delivered to the consumer if it's committed. The 1st step I found in https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L964 The 2nd step I found in https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L977 The 3rd step I found in https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L1026 for client and https://github.com/apache/rocketmq/blob/master/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java#L49 for broker And my question is what is the part to be implemented for this issue? Is there anything I missed? ________________________________ 发件人: 李 德鑫 <[email protected]> 发送时间: 2018年2月23日 9:35:17 收件人: [email protected] 主题: [GSOC|ROCKETMQ-123]Support Distributed Transactional Messaging Hi, I am working on this issue (https://issues.apache.org/jira/browse/ROCKETMQ-123) as my GSOC project [ROCKETMQ-123] Support Distributed Transactional Messaging ...<https://issues.apache.org/jira/browse/ROCKETMQ-123> In most businesses, transactional messaging is frequently used to make a series of operations as an atomic transaction. At present, RocketMQ doesn't support ... issues.apache.org However, there already have TransactionMQProducer https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23> apache/rocketmq<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23> rocketmq - Mirror of Apache RocketMQ github.com and TransactionCheckListener https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionCheckListener.java So, what is the part I should implement for this issue? Regards, Dexin Li
