vongosling commented on ROCKETMQ-123:

[~DexinLi] I would like to help you for this topic in the CSoC, If you have any 
problem, please let me know :)

> Support Distributed Transactional Messaging
> -------------------------------------------
>                 Key: ROCKETMQ-123
>                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-123
>             Project: Apache RocketMQ
>          Issue Type: Wish
>          Components: rocketmq-client, rocketmq-store
>            Reporter: yukon
>            Priority: Minor
>              Labels: gsoc2018
>             Fix For: 4.3.0
> In most businesses, transactional messaging is frequently used to make a 
> series of operations as an atomic transaction.
> At present, RocketMQ doesn't support transactional messaging, there is a 
> potential need for a database implementation to solve the implement 
> transaction mechanism. But a database system heavyweight and can't meet the 
> high-performance demand. 
> In messaging domain, there is a simpler and more efficient distributed 
> transaction solution than 2PC/XA/3PC protocols:
> 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 above solution is for reference only, a better solution is welcome.

This message was sent by Atlassian JIRA

Reply via email to