[ 
https://issues.apache.org/jira/browse/COMDEV-251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

yukon updated COMDEV-251:
-------------------------
    Description: 
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.

 

  was:
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.

 


> [RocketMQ] Support Distributed Transactional Messaging
> ------------------------------------------------------
>
>                 Key: COMDEV-251
>                 URL: https://issues.apache.org/jira/browse/COMDEV-251
>             Project: Community Development
>          Issue Type: Improvement
>          Components: GSoC/Mentoring ideas
>            Reporter: yukon
>            Priority: Major
>              Labels: gsoc2018, mentor
>
> 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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
For additional commands, e-mail: dev-h...@community.apache.org

Reply via email to