You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by vo...@apache.org on 2018/07/13 07:57:27 UTC

[rocketmq-site] 02/02: Publish the transactional wiki

This is an automated email from the ASF dual-hosted git repository.

vongosling pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/rocketmq-site.git

commit 4f129ce3f703cf95fdb2ce4b3faac36f5f2d6404
Author: vongosling <vo...@alibaba-inc.com>
AuthorDate: Fri Jul 13 15:57:07 2018 +0800

    Publish the transactional wiki
---
 content/about/contact/index.html                   |   4 +-
 content/about/rewards/index.html                   |   4 +-
 content/about/team/index.html                      |   4 +-
 content/archive-layout-with-content/index.html     |  14 ++
 .../images/blog/checking-transactional-message.png | Bin 0 -> 88792 bytes
 .../images/blog/sending-transactional-message.png  | Bin 0 -> 90913 bytes
 .../images/blog/transaction-execute-flow.png       | Bin 0 -> 50469 bytes
 .../images/blog/transaction-outline-design.png     | Bin 0 -> 53166 bytes
 content/categories/index.html                      |  43 ++++
 content/collection-archive/index.html              |  23 +++
 content/docs/batch-example/index.html              |  12 +-
 content/docs/best-practice-broker/index.html       |  14 +-
 content/docs/best-practice-consumer/index.html     |  12 +-
 content/docs/best-practice-namesvr/index.html      |  12 +-
 content/docs/best-practice-producer/index.html     |  12 +-
 content/docs/broadcast-example/index.html          |  12 +-
 content/docs/cli-admin-tool/index.html             |  12 +-
 content/docs/cluster-deployment/index.html         |  12 +-
 content/docs/code-guidelines/index.html            |  12 +-
 content/docs/core-concept/index.html               |  12 +-
 content/docs/create-pull-request/index.html        |  12 +-
 content/docs/documentation/index.html              |  12 +-
 content/docs/faq/index.html                        |  12 +-
 content/docs/filter-by-sql92-example/index.html    |  12 +-
 content/docs/how-to-contribute/index.html          |  14 +-
 content/docs/logappender-example/index.html        |  12 +-
 content/docs/motivation/index.html                 |  12 +-
 content/docs/openmessaging-example/index.html      |  12 +-
 content/docs/order-example/index.html              |  12 +-
 content/docs/pull-request/index.html               |  12 +-
 content/docs/quick-start/index.html                |  12 +-
 content/docs/release-manual.html                   |  12 +-
 content/docs/rmq-arc/index.html                    |  12 +-
 content/docs/rmq-deployment/index.html             |  12 +-
 content/docs/roadmap/index.html                    |  12 +-
 content/docs/schedule-example/index.html           |  12 +-
 content/docs/simple-example/index.html             |  12 +-
 content/docs/system-config/index.html              |  12 +-
 .../index.html                                     | 230 +++++++++++++--------
 content/dowloading/releases/index.html             |  12 +-
 content/feed.xml                                   | 119 ++++++-----
 .../release_notes/release-notes-4.2.0/index.html   |   3 +-
 .../index.html                                     | 186 +++++++----------
 content/sitemap.xml                                |  75 ++++---
 content/tags/index.html                            | 145 +++++++++++++
 content/year-archive/index.html                    |  42 ++++
 46 files changed, 898 insertions(+), 346 deletions(-)

diff --git a/content/about/contact/index.html b/content/about/contact/index.html
index e23c817..4367057 100644
--- a/content/about/contact/index.html
+++ b/content/about/contact/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="CONTACT">
     <meta itemprop="description" content="Contact.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/about/rewards/index.html b/content/about/rewards/index.html
index 278a1ad..359e2d7 100644
--- a/content/about/rewards/index.html
+++ b/content/about/rewards/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="REWARDS">
     <meta itemprop="description" content="Rewards.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="January 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/about/team/index.html b/content/about/team/index.html
index 76a3532..58b914d 100644
--- a/content/about/team/index.html
+++ b/content/about/team/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="TEAM">
     <meta itemprop="description" content="Project team.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/archive-layout-with-content/index.html b/content/archive-layout-with-content/index.html
index 9c367c2..6b983ec 100644
--- a/content/archive-layout-with-content/index.html
+++ b/content/archive-layout-with-content/index.html
@@ -937,6 +937,20 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/docs/transaction-example/" rel="permalink">Transaction example</a>
+      
+    </h2>
+    
+    <p class="archive__item-excerpt" itemprop="description">How to use transactional component to implement eventual consistency in RocketMQ.
+</p>
+  </article>
+</div>
+
+<div class="list__item">
+  <article class="archive__item" itemscope="" itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/404.html" rel="permalink">Page Not Found</a>
       
     </h2>
diff --git a/content/assets/images/blog/checking-transactional-message.png b/content/assets/images/blog/checking-transactional-message.png
new file mode 100644
index 0000000..c47424b
Binary files /dev/null and b/content/assets/images/blog/checking-transactional-message.png differ
diff --git a/content/assets/images/blog/sending-transactional-message.png b/content/assets/images/blog/sending-transactional-message.png
new file mode 100644
index 0000000..38778c7
Binary files /dev/null and b/content/assets/images/blog/sending-transactional-message.png differ
diff --git a/content/assets/images/blog/transaction-execute-flow.png b/content/assets/images/blog/transaction-execute-flow.png
new file mode 100644
index 0000000..89dd672
Binary files /dev/null and b/content/assets/images/blog/transaction-execute-flow.png differ
diff --git a/content/assets/images/blog/transaction-outline-design.png b/content/assets/images/blog/transaction-outline-design.png
new file mode 100644
index 0000000..40df271
Binary files /dev/null and b/content/assets/images/blog/transaction-outline-design.png differ
diff --git a/content/categories/index.html b/content/categories/index.html
index 673046d..8a2c4dc 100644
--- a/content/categories/index.html
+++ b/content/categories/index.html
@@ -388,6 +388,12 @@
 
 
 
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+
+
+
 
 <!-- group_items -->
 
@@ -615,6 +621,43 @@ January 5th 2017
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/rocketmq/the-design-of-transactional-message/" rel="permalink">The Design Of Transactional Message
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">
+
+     On This Page
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction
+
+</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/rocketmq/Field-Report-Meetup-Beijing/" rel="permalink">Field Report of Apache RocketMQ Meetup Beijing
 </a>
       
diff --git a/content/collection-archive/index.html b/content/collection-archive/index.html
index 3c8c0f7..adc6f72 100644
--- a/content/collection-archive/index.html
+++ b/content/collection-archive/index.html
@@ -888,6 +888,27 @@ The table below shows the supported jre environment for components of each relea
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/docs/transaction-example/" rel="permalink">Transaction example
+</a>
+      
+    </h2>
+    
+    <p class="archive__item-excerpt" itemprop="description">How to use transactional component to implement eventual consistency in RocketMQ.
+</p>
+  </article>
+</div>
+    
+  
+    
+      
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/docs/best-practice-broker/" rel="permalink">Best Practice For Broker
 </a>
       
@@ -1032,6 +1053,8 @@ and the coordination is mainly achieved through managing...</p>
   
     
   
+    
+  
 
   
     
diff --git a/content/docs/batch-example/index.html b/content/docs/batch-example/index.html
index be54c6b..2bc774b 100644
--- a/content/docs/batch-example/index.html
+++ b/content/docs/batch-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Batch Example">
     <meta itemprop="description" content="How to use batch in Rocketmq">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-broker/index.html b/content/docs/best-practice-broker/index.html
index c2351ec..2c3efe0 100644
--- a/content/docs/best-practice-broker/index.html
+++ b/content/docs/best-practice-broker/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Broker">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
@@ -546,7 +554,7 @@ If you just want to make it easy, you may only need a ASYNC_MASTER without SLAVE
       
   <nav class="pagination">
     
-      <a href="/docs/how-to-contribute/" class="pagination--pager" title="How To Contribute
+      <a href="/docs/transaction-example/" class="pagination--pager" title="Transaction example
 ">Previous</a>
     
     
diff --git a/content/docs/best-practice-consumer/index.html b/content/docs/best-practice-consumer/index.html
index 094d76e..8ff51c3 100644
--- a/content/docs/best-practice-consumer/index.html
+++ b/content/docs/best-practice-consumer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Consumer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-namesvr/index.html b/content/docs/best-practice-namesvr/index.html
index 889565e..af71039 100644
--- a/content/docs/best-practice-namesvr/index.html
+++ b/content/docs/best-practice-namesvr/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For NameServer">
     <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand the coordination is mainly achieved through managing topic routing information.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-producer/index.html b/content/docs/best-practice-producer/index.html
index 2bab4fd..e34590e 100644
--- a/content/docs/best-practice-producer/index.html
+++ b/content/docs/best-practice-producer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Producer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/broadcast-example/index.html b/content/docs/broadcast-example/index.html
index 28c04f0..86d2e09 100644
--- a/content/docs/broadcast-example/index.html
+++ b/content/docs/broadcast-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Broadcasting">
     <meta itemprop="description" content="How to send broadcast messages in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/cli-admin-tool/index.html b/content/docs/cli-admin-tool/index.html
index 7b85d22..cc0ee58 100644
--- a/content/docs/cli-admin-tool/index.html
+++ b/content/docs/cli-admin-tool/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="CLI Admin Tool">
     <meta itemprop="description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/cluster-deployment/index.html b/content/docs/cluster-deployment/index.html
index 541520a..cb77e30 100644
--- a/content/docs/cluster-deployment/index.html
+++ b/content/docs/cluster-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Cluster Configuration and Deployment">
     <meta itemprop="description" content="Prerequisite">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/code-guidelines/index.html b/content/docs/code-guidelines/index.html
index c47c229..e9002df 100644
--- a/content/docs/code-guidelines/index.html
+++ b/content/docs/code-guidelines/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Coding Guidelines">
     <meta itemprop="description" content="Apache RocketMQ Coding Guidelines">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/core-concept/index.html b/content/docs/core-concept/index.html
index c4dfe50..ad41513 100644
--- a/content/docs/core-concept/index.html
+++ b/content/docs/core-concept/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Core Concept">
     <meta itemprop="description" content="">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/create-pull-request/index.html b/content/docs/create-pull-request/index.html
index 7c11f53..ddc88bc 100644
--- a/content/docs/create-pull-request/index.html
+++ b/content/docs/create-pull-request/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="How to create Pull Request">
     <meta itemprop="description" content="This page guides you through the pull request creation process.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/documentation/index.html b/content/docs/documentation/index.html
index fcb491e..86757fc 100644
--- a/content/docs/documentation/index.html
+++ b/content/docs/documentation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Documentation">
     <meta itemprop="description" content="Apache RocketMQ Documentation">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="March 02, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index 1082de2..b2690c9 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="active">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Frequently Asked Questions">
     <meta itemprop="description" content="The following questions are frequently asked with regard to the RocketMQ project in general.General1. Why did we create rocketmq project instead of selecting other products?Please refer to Why RocketMQ">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 28, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/filter-by-sql92-example/index.html b/content/docs/filter-by-sql92-example/index.html
index eee6360..51e3600 100644
--- a/content/docs/filter-by-sql92-example/index.html
+++ b/content/docs/filter-by-sql92-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Filter Example">
     <meta itemprop="description" content="How to filter messages by SQL92 in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 27, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/how-to-contribute/index.html b/content/docs/how-to-contribute/index.html
index 4a0cd28..66f5d8b 100644
--- a/content/docs/how-to-contribute/index.html
+++ b/content/docs/how-to-contribute/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="How To Contribute">
     <meta itemprop="description" content="Apache RocketMQ is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache RocketMQ. There are several ways to interact with the community and to contribute to RocketMQ including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="August 24, 2017">
 
     <div class="page__inner-wrap">
@@ -652,7 +660,7 @@ Please follow the Improve the <a href="https://github.com/apache/rocketmq-site">
 ">Previous</a>
     
     
-      <a href="/docs/best-practice-broker/" class="pagination--pager" title="Best Practice For Broker
+      <a href="/docs/transaction-example/" class="pagination--pager" title="Transaction example
 ">Next</a>
     
   </nav>
diff --git a/content/docs/logappender-example/index.html b/content/docs/logappender-example/index.html
index 4df80c5..9838a79 100644
--- a/content/docs/logappender-example/index.html
+++ b/content/docs/logappender-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Logappender Example">
     <meta itemprop="description" content="How to use logappender in RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="June 09, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
index a05221e..38da9be 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Motivation">
     <meta itemprop="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/openmessaging-example/index.html b/content/docs/openmessaging-example/index.html
index da5e395..6b0bd35 100644
--- a/content/docs/openmessaging-example/index.html
+++ b/content/docs/openmessaging-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="OpenMessaging Example">
     <meta itemprop="description" content="How to use OpenMessaging in RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="June 09, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/order-example/index.html b/content/docs/order-example/index.html
index 30c1470..7a99c79 100644
--- a/content/docs/order-example/index.html
+++ b/content/docs/order-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Order Message">
     <meta itemprop="description" content="How to send and receive ordered messages in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
index 80d61b7..0cc5c58 100644
--- a/content/docs/pull-request/index.html
+++ b/content/docs/pull-request/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="How to manage Pull Request">
     <meta itemprop="description" content="This page guides you through Git setup and contribution process.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
index a236ebd..bc876f3 100644
--- a/content/docs/quick-start/index.html
+++ b/content/docs/quick-start/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Quick Start">
     <meta itemprop="description" content="How to quickly install and setup Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
index cde880d..ece4eb5 100644
--- a/content/docs/release-manual.html
+++ b/content/docs/release-manual.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Release Manual">
     <meta itemprop="description" content="Apache RocketMQ Release Manual">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="February 08, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/rmq-arc/index.html b/content/docs/rmq-arc/index.html
index adfe6ce..c0613e0 100644
--- a/content/docs/rmq-arc/index.html
+++ b/content/docs/rmq-arc/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="RocketMQ Architecture">
     <meta itemprop="description" content="The main Architecture of Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/rmq-deployment/index.html b/content/docs/rmq-deployment/index.html
index 50c781d..3dcf6e7 100644
--- a/content/docs/rmq-deployment/index.html
+++ b/content/docs/rmq-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Deployment">
     <meta itemprop="description" content="How to deploy the Apache RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
index 9e96b74..97af5fc 100644
--- a/content/docs/roadmap/index.html
+++ b/content/docs/roadmap/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="The RoadMap of Apache RocketMQ">
     <meta itemprop="description" content="4.1.0~4.3.0-incubating RoadMap:">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="March 08, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/schedule-example/index.html b/content/docs/schedule-example/index.html
index edf41c5..ec948cb 100644
--- a/content/docs/schedule-example/index.html
+++ b/content/docs/schedule-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Schedule example">
     <meta itemprop="description" content="How to use schedule component to reduce pull in RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/simple-example/index.html b/content/docs/simple-example/index.html
index 667fbe8..e309f0d 100644
--- a/content/docs/simple-example/index.html
+++ b/content/docs/simple-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Simple Message Example">
     <meta itemprop="description" content="How to send simple message to reduce pull in RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/system-config/index.html b/content/docs/system-config/index.html
index 60b074a..352dcd6 100644
--- a/content/docs/system-config/index.html
+++ b/content/docs/system-config/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="RocketMQ JVM/Linux Configuration">
     <meta itemprop="description" content="This is an introduction for configuring RocketMQ broker JVM/OS parameters. It points out certain specified configurations that should be thinking about before deploying RocketMQ cluster.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="July 15, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/logappender-example/index.html b/content/docs/transaction-example/index.html
similarity index 60%
copy from content/docs/logappender-example/index.html
copy to content/docs/transaction-example/index.html
index 4df80c5..40ca007 100644
--- a/content/docs/logappender-example/index.html
+++ b/content/docs/transaction-example/index.html
@@ -13,30 +13,30 @@
 
 
 
-<title>Logappender Example - Apache RocketMQ</title>
+<title>Transaction example - Apache RocketMQ</title>
 
 
 
 
-<meta name="description" content="How to use logappender in RocketMQ.">
+<meta name="description" content="How to use transactional component to implement eventual consistency in RocketMQ.">
 
 
 
 
 <meta property="og:locale" content="en">
 <meta property="og:site_name" content="Apache RocketMQ">
-<meta property="og:title" content="Logappender Example">
+<meta property="og:title" content="Transaction example">
 
 
 
 
-  <meta property="og:description" content="How to use logappender in RocketMQ.">
+  <meta property="og:description" content="How to use transactional component to implement eventual consistency in RocketMQ.">
 
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
-  <meta name="twitter:title" content="Logappender Example">
-  <meta name="twitter:description" content="How to use logappender in RocketMQ.">
+  <meta name="twitter:title" content="Transaction example">
+  <meta name="twitter:description" content="How to use transactional component to implement eventual consistency in RocketMQ.">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -247,7 +247,7 @@
             
             
 
-            <li><a href="/docs/logappender-example/" class="active">Logappender Example</a></li>
+            <li><a href="/docs/logappender-example/" class="">Logappender Example</a></li>
           
             
             
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="active">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -472,15 +480,15 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="Logappender Example">
-    <meta itemprop="description" content="How to use logappender in RocketMQ.">
-    <meta itemprop="datePublished" content="July 12, 2018">
-    <meta itemprop="dateModified" content="June 09, 2017">
+    <meta itemprop="headline" content="Transaction example">
+    <meta itemprop="description" content="How to use transactional component to implement eventual consistency in RocketMQ.">
+    <meta itemprop="datePublished" content="July 13, 2018">
+    <meta itemprop="dateModified" content="July 13, 2018">
 
     <div class="page__inner-wrap">
       
         <header>
-          <h1 class="page__title" itemprop="headline">Logappender Example
+          <h1 class="page__title" itemprop="headline">Transaction example
 </h1>
           
         </header>
@@ -491,86 +499,130 @@
 <nav class="toc">
     <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
 <ul class="toc__menu" id="markdown-toc">
-  <li><a href="#log4j" id="markdown-toc-log4j">log4j</a></li>
-  <li><a href="#log4j2" id="markdown-toc-log4j2">log4j2</a></li>
-  <li><a href="#logback" id="markdown-toc-logback">logback</a></li>
+  <li><a href="#what-is-transactional-message" id="markdown-toc-what-is-transactional-message">What is transactional message?</a></li>
+  <li><a href="#usage-constraint" id="markdown-toc-usage-constraint">Usage Constraint</a></li>
+  <li><a href="#application" id="markdown-toc-application">Application</a></li>
 </ul>
 
   </nav>
 </aside>
 
-<p>RocketMQ logappender provides log4j appender, log4j2 appender and logback appender for bussiness to use, below are config examples.</p>
-
-<h4 id="log4j">log4j</h4>
-
-<p>When using log4j properties config file,config as below.</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
-log4j.appender.mq.Tag=yourTag
-log4j.appender.mq.Topic=yourLogTopic
-log4j.appender.mq.ProducerGroup=yourLogGroup
-log4j.appender.mq.NameServerAddress=yourRocketmqNameserverAddress
-log4j.appender.mq.layout=org.apache.log4j.PatternLayout
-log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p - %m%n
-</code></pre>
-</div>
-
-<p>When using log4j xml config file,config it as this and also add a async appender:</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>&lt;appender name="mqAppender1" class="org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender"&gt;
-    &lt;param name="Tag" value="yourTag" /&gt;
-    &lt;param name="Topic" value="yourLogTopic" /&gt;
-    &lt;param name="ProducerGroup" value="yourLogGroup" /&gt;
-    &lt;param name="NameServerAddress" value="yourRocketmqNameserverAddress"/&gt;
-    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
-        &lt;param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}-%p %t %c - %m%n" /&gt;
-    &lt;/layout&gt;
-&lt;/appender&gt;
-
-&lt;appender name="mqAsyncAppender1" class="org.apache.log4j.AsyncAppender"&gt;
-    &lt;param name="BufferSize" value="1024" /&gt;
-    &lt;param name="Blocking" value="false" /&gt;
-    &lt;appender-ref ref="mqAppender1"/&gt;
-&lt;/appender&gt;
-</code></pre>
-</div>
-
-<h4 id="log4j2">log4j2</h4>
-<p>When using log4j2,config as this.If you want noneblock,just config an asyncAppender for ref.</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>&lt;RocketMQ name="rocketmqAppender" producerGroup="yourLogGroup" nameServerAddress="yourRocketmqNameserverAddress"
-     topic="yourLogTopic" tag="yourTag"&gt;
-    &lt;PatternLayout pattern="%d [%p] hahahah %c %m%n"/&gt;
-&lt;/RocketMQ&gt;
-
+<h3 id="what-is-transactional-message">What is transactional message?</h3>
+
+<p>It can be thought of as a two-phase commit message implementation to ensure eventual consistency in distributed system. 
+Transactional message ensures that the execution of local transaction and the sending of message can be performed atomically.</p>
+
+<h3 id="usage-constraint">Usage Constraint</h3>
+
+<p>(1) Messages of the transactional have no schedule and batch support.<br />
+(2) In order to avoid a single message being checked too many times and lead to half queue message accumulation, we limited the number of checks for a single message to 15 times by default, but users can change this limit by change the “transactionCheckMax” parameter in the configuration of the broker, if one message has been checked over “transactionCheckMax” times, broker will discard this message and print an error log at the same time by default. Users can change this behavior by ove [...]
+(3) A transactional message will be checked after a certain period of time that determined by parameter “transactionMsgTimeout” in the configuration of the broker. And users also can change this limit by set user property “CHECK_IMMUNITY_TIME_IN_SECONDS” when sending transactional message, this parameter takes precedence over the “transactionMsgTimeout” parameter. <br />
+(4) A transactional message maybe checked or consumed more than once. <br />
+(5) Committed message reput to the user’s target topic may fail. Currently, it depends on the log record. High availability is ensured by the high availability mechanism of RocketMQ itself. If you want to ensure that the transactional message isn’t lost and the transaction integrity is guaranteed, it is recommended to use synchronous double write. mechanism. <br />
+(6) Producer IDs of transactional messages cannot be shared with producer IDs of other types of messages. Unlike other types of message, transactional messages allow backward queries. MQ Server query clients by their Producer IDs.</p>
+
+<h3 id="application">Application</h3>
+
+<p>1、	Transactional status</p>
+
+<p>There are three states for transactional message:<br />
+   (1) TransactionStatus.CommitTransaction: commit transaction,it means that allow consumers to consume this message.<br />
+   (2) TransactionStatus.RollbackTransaction: rollback transaction,it means that the message will be deleted and not allowed to consume.<br />
+   (3) TransactionStatus.Unknown: intermediate state,it means that MQ is needed to check back to determine the status.</p>
+
+<p>2、Send transactional message</p>
+
+<p>(1)Create the transactional producer<br />
+   Use TransactionMQProducer class to create producer client, and specify a unique producerGroup, and you can set up a custom thread pool to process check requests. After executing the local transaction, you need to reply to MQ according to the execution result,and the reply status is described in the above section.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
+import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
+import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
+import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
+import org.apache.rocketmq.common.message.MessageExt;
+import java.util.List;
+
+public class TransactionProducer {
+    public static void main(String[] args) throws MQClientException, InterruptedException {
+        TransactionListener transactionListener = new TransactionListenerImpl();
+        TransactionMQProducer producer = new TransactionMQProducer("please_rename_unique_group_name");
+        ExecutorService executorService = new ThreadPoolExecutor(2, 5, 100, TimeUnit.SECONDS, new ArrayBlockingQueue&lt;Runnable&gt;(2000), new ThreadFactory() {
+            @Override
+            public Thread newThread(Runnable r) {
+                Thread thread = new Thread(r);
+                thread.setName("client-transaction-msg-check-thread");
+                return thread;
+            }
+        });
+
+        producer.setExecutorService(executorService);
+        producer.setTransactionListener(transactionListener);
+        producer.start();
+
+        String[] tags = new String[] {"TagA", "TagB", "TagC", "TagD", "TagE"};
+        for (int i = 0; i &lt; 10; i++) {
+            try {
+                Message msg =
+                    new Message("TopicTest1234", tags[i % tags.length], "KEY" + i,
+                        ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
+                SendResult sendResult = producer.sendMessageInTransaction(msg, null);
+                System.out.printf("%s%n", sendResult);
+
+                Thread.sleep(10);
+            } catch (MQClientException | UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+
+        for (int i = 0; i &lt; 100000; i++) {
+            Thread.sleep(1000);
+        }
+        producer.shutdown();
+    }
+}
+```
 </code></pre>
 </div>
 
-<h4 id="logback">logback</h4>
-<p>When using logback,an asyncAppender also needed.</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>&lt;appender name="mqAppender1" class="org.apache.rocketmq.logappender.logback.RocketmqLogbackAppender"&gt;
-    &lt;tag&gt;yourTag&lt;/tag&gt;
-    &lt;topic&gt;yourLogTopic&lt;/topic&gt;
-    &lt;producerGroup&gt;yourLogGroup&lt;/producerGroup&gt;
-    &lt;nameServerAddress&gt;yourRocketmqNameserverAddress&lt;/nameServerAddress&gt;
-    &lt;layout&gt;
-        &lt;pattern&gt;%date %p %t - %m%n&lt;/pattern&gt;
-    &lt;/layout&gt;
-&lt;/appender&gt;
-
-&lt;appender name="mqAsyncAppender1" class="ch.qos.logback.classic.AsyncAppender"&gt;
-    &lt;queueSize&gt;1024&lt;/queueSize&gt;
-    &lt;discardingThreshold&gt;80&lt;/discardingThreshold&gt;
-    &lt;maxFlushTime&gt;2000&lt;/maxFlushTime&gt;
-    &lt;neverBlock&gt;true&lt;/neverBlock&gt;
-    &lt;appender-ref ref="mqAppender1"/&gt;
-&lt;/appender&gt;
-
+<p>(2)Implement the TransactionListener interface<br />
+   The “executeLocalTransaction” method is used to execute local transaction when send half message succeed. It returns one of three transaction status mentioned in the previous section.<br />
+   The “checkLocalTransaction” method is used to check the local transaction status and respond to MQ check requests. It also returns one of three transaction status mentioned in the previous section.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>   import ...
+   
+   public class TransactionListenerImpl implements TransactionListener {
+       private AtomicInteger transactionIndex = new AtomicInteger(0);
+   
+       private ConcurrentHashMap&lt;String, Integer&gt; localTrans = new ConcurrentHashMap&lt;&gt;();
+   
+       @Override
+       public LocalTransactionState executeLocalTransaction(Message msg, Object arg) {
+           int value = transactionIndex.getAndIncrement();
+           int status = value % 3;
+           localTrans.put(msg.getTransactionId(), status);
+           return LocalTransactionState.UNKNOW;
+       }
+   
+       @Override
+       public LocalTransactionState checkLocalTransaction(MessageExt msg) {
+           Integer status = localTrans.get(msg.getTransactionId());
+           if (null != status) {
+               switch (status) {
+                   case 0:
+                       return LocalTransactionState.UNKNOW;
+                   case 1:
+                       return LocalTransactionState.COMMIT_MESSAGE;
+                   case 2:
+                       return LocalTransactionState.ROLLBACK_MESSAGE;
+               }
+           }
+           return LocalTransactionState.COMMIT_MESSAGE;
+       }
+   }
+   ```
 </code></pre>
 </div>
 
-
         
       </section>
 
@@ -580,7 +632,7 @@ log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F
 
 
         
-          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-06-09">June 09, 2017</time></p>
+          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2018-07-13">July 13, 2018</time></p>
         
       </footer>
 
@@ -589,24 +641,24 @@ log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F
     <h4 class="page__share-title">Share on</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Logappender Example /docs/logappender-example/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Transaction example /docs/transaction-example/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 
-  <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/logappender-example/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+  <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/transaction-example/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 
-  <a href="https://plus.google.com/share?url=/docs/logappender-example/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+  <a href="https://plus.google.com/share?url=/docs/transaction-example/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 
-  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/logappender-example/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/transaction-example/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 </section>
 
 
       
   <nav class="pagination">
     
-      <a href="/docs/filter-by-sql92-example/" class="pagination--pager" title="Filter Example
+      <a href="/docs/how-to-contribute/" class="pagination--pager" title="How To Contribute
 ">Previous</a>
     
     
-      <a href="/docs/openmessaging-example/" class="pagination--pager" title="OpenMessaging Example
+      <a href="/docs/best-practice-broker/" class="pagination--pager" title="Best Practice For Broker
 ">Next</a>
     
   </nav>
diff --git a/content/dowloading/releases/index.html b/content/dowloading/releases/index.html
index 3274738..6d858fd 100644
--- a/content/dowloading/releases/index.html
+++ b/content/dowloading/releases/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2018-07-12T14:39:16+08:00">
+  <meta property="article:published_time" content="2018-07-13T15:55:40+08:00">
 
 
 
@@ -263,6 +263,14 @@
             
             
 
+            <li><a href="/docs/transaction-example/" class="">Transaction Example</a></li>
+          
+            
+            
+
+            
+            
+
             <li><a href="/docs/faq/" class="">FAQ</a></li>
           
         </ul>
@@ -474,7 +482,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Downloading the Apache RocketMQ Releases">
     <meta itemprop="description" content="Compatibility GuideThe table below shows the supported jre environment for components of each release.">
-    <meta itemprop="datePublished" content="July 12, 2018">
+    <meta itemprop="datePublished" content="July 13, 2018">
     <meta itemprop="dateModified" content="February 21, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/feed.xml b/content/feed.xml
index 34833f5..ea6533f 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -1,4 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-07-12T14:39:16+08:00</updated><id>//</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&qu [...]
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-07-13T15:55:40+08:00</updated><id>//</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&qu [...]
+&lt;nav class=&quot;toc&quot;&gt;
+    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-file-text&quot;&gt;&lt;/i&gt; On This Page&lt;/h4&gt;&lt;/header&gt;
+&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
+  &lt;li&gt;&lt;a href=&quot;#concept-introduction&quot; id=&quot;markdown-toc-concept-introduction&quot;&gt;Concept Introduction&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#execute-flow-chart&quot; id=&quot;markdown-toc-execute-flow-chart&quot;&gt;Execute Flow Chart&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#detailed-design&quot; id=&quot;markdown-toc-detailed-design&quot;&gt;Detailed Design&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+  &lt;/nav&gt;
+&lt;/aside&gt;
+&lt;h1 id=&quot;concept-introduction&quot;&gt;Concept Introduction&lt;/h1&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;Half(Prepare) Message&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;Refers to a message that cannot be delivered temporarily. When a message is successfully sent to the MQ server, but the server did not receive the second acknowledgement of the message from the producer, then the message is marked as “temporarily undeliverable”. The message in this status is called a half message.&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;Message Status Check&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;Network disconnection or producer application restart may result in the loss of the second acknowledgement of a transactional message. When MQ server finds that a message remains a half message for a long time, it will send a request to the message producer, checking the final status of the message (Commit or Rollback).&lt;/p&gt;
+
+&lt;h1 id=&quot;execute-flow-chart&quot;&gt;Execute Flow Chart&lt;/h1&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/blog/transaction-execute-flow.png&quot; alt=&quot;screenshot&quot; /&gt;&lt;/p&gt;
+&lt;ol&gt;
+  &lt;li&gt;Producer send half message to MQ server.&lt;/li&gt;
+  &lt;li&gt;After send half message succeed, execute local transaction.&lt;/li&gt;
+  &lt;li&gt;Send commit or rollback message to MQ Server based on local transaction results.&lt;/li&gt;
+  &lt;li&gt;If commit/rollback message missed or producer pended during the execution of local transaction,MQ server will send check message to each producers in the same group to obtain transaction status.&lt;/li&gt;
+  &lt;li&gt;Producer reply commit/rollback message based on local transaction status.&lt;/li&gt;
+  &lt;li&gt;Committed message will be delivered to consumer but rolled back message will be discarded by MQ server.&lt;/li&gt;
+&lt;/ol&gt;
+
+&lt;h1 id=&quot;detailed-design&quot;&gt;Detailed Design&lt;/h1&gt;
+&lt;blockquote&gt;
+  &lt;p&gt;Outline:&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/blog/transaction-outline-design.png&quot; alt=&quot;screenshot&quot; /&gt;&lt;br /&gt;
+Just as the figure shows, in order to mask the underlying implementation of storage, all transactional message operations focus on the transaction service interface.
+RocketMQ provides a default implementation with its own storage system,and we used a transaction bridge to implement our transactional storage logic,instead of modify RocketMQ’s storage layer directly.&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;Sending transactional message:&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/blog/sending-transactional-message.png&quot; alt=&quot;screenshot&quot; /&gt;&lt;br /&gt;
+This figure describes the timing relationships of sending transactional message. From this figure, we can clearly see that how transactional messages are committed in two phases.&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;Checking transactional message:&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/blog/checking-transactional-message.png&quot; alt=&quot;screenshot&quot; /&gt;&lt;br /&gt;
+This figure describes the checking logic for transactional messages,when MQ server finds that a message remains a half message for a long time,it will send a request to the message producer,to get the status of the current transaction.&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;Design Motivation:&lt;/p&gt;
+&lt;/blockquote&gt;</content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;n [...]
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction</summary></entry><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.2.0</title><link href="/release_notes/release-notes-4.2.0/" rel="alternate" type="text/html" title="Release Notes - Apache RocketMQ - Version 4.2.0" /><published>2017-12-13T00:00:00+08:00</published><updated>2017-12-13T00:00:00+08:00</updated><id>/release_notes/release-notes-4.2.0</id><content type="html" xml:base="/release_notes/release-notes-4.2.0/">&lt;p&gt;Below is a summary of [...]
 
 &lt;h2&gt; Download the 4.2.0 release
 &lt;/h2&gt;
@@ -692,50 +761,4 @@ and fulfill much of this responsibility through managing topic route information
     &lt;/li&gt;
     &lt;li&gt;[&lt;a href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-9&quot;&gt;ROCKETMQ-9&lt;/a&gt;] - Errors in rocketmq-store module
     &lt;/li&gt;
-&lt;/ul&gt;</content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quo [...]
-&lt;h1 id=&quot;rocketmq-code-marathon-&quot;&gt;ROCKETMQ CODE MARATHON &lt;a href=&quot;/assets/attachment/launch-rocketmq-code-marathon.pdf&quot;&gt;&lt;i class=&quot;fa fa-link&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h1&gt;
-&lt;h5 id=&quot;january-5th-2017&quot;&gt;January 5th 2017&lt;/h5&gt;
-
-&lt;h2 id=&quot;objective&quot;&gt;Objective:&lt;/h2&gt;
-&lt;ol&gt;
-  &lt;li&gt;Foster Community&lt;/li&gt;
-  &lt;li&gt;Prosper Ecology&lt;/li&gt;
-  &lt;li&gt;Incubate Committers&lt;/li&gt;
-&lt;/ol&gt;
-
-&lt;h2 id=&quot;output&quot;&gt;Output:&lt;/h2&gt;
-&lt;ol&gt;
-  &lt;li&gt;1~3 Milestone Releases Per Project&lt;/li&gt;
-&lt;/ol&gt;
-
-&lt;h2 id=&quot;rewards&quot;&gt;Rewards:&lt;/h2&gt;
-&lt;ol&gt;
-  &lt;li&gt;Two Potential Committers Per Project&lt;/li&gt;
-  &lt;li&gt;Free Offers to Active Participants for On-Site Meetup&lt;/li&gt;
-  &lt;li&gt;PMC Memberships for Qualified Committers&lt;/li&gt;
-&lt;/ol&gt;
-
-&lt;h2 id=&quot;projects&quot;&gt;PROJECTS&lt;/h2&gt;
-
-&lt;h3 id=&quot;rocketmq-console&quot;&gt;RocketMQ-Console&lt;/h3&gt;
-&lt;ol&gt;
-  &lt;li&gt;Brand New UI&lt;/li&gt;
-  &lt;li&gt;I18n Support&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://projects.spring.io/spring-boot/&quot;&gt;Spring Boot&lt;/a&gt; + &lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Bootstrap&lt;/a&gt; Recommended&lt;/li&gt;
-  &lt;li&gt;Join by Creating Pull Requests against &lt;a href=&quot;https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console&quot;&gt;RocketMQ Console Repository&lt;/a&gt;&lt;/li&gt;
-&lt;/ol&gt;
-
-&lt;h3 id=&quot;rocketmq-jms&quot;&gt;RocketMQ-JMS&lt;/h3&gt;
-&lt;ol&gt;
-  &lt;li&gt;Supporting JMS 2.0 Protocol&lt;/li&gt;
-  &lt;li&gt;Rich Documentation and Good Test Cases Coverage&lt;/li&gt;
-  &lt;li&gt;Join by Creating Pull Requests against &lt;a href=&quot;https://github.com/apache/rocketmq-externals/tree/master/rocketmq-jms&quot;&gt;RocketMQ JMS Repository&lt;/a&gt;&lt;/li&gt;
-&lt;/ol&gt;
-
-&lt;h3 id=&quot;rocketmq-flume&quot;&gt;RocketMQ-Flume&lt;/h3&gt;
-&lt;ol&gt;
-  &lt;li&gt;Supporting Latest &lt;a href=&quot;http://flume.apache.org/&quot;&gt;Flume&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;Rich Documentation and Good Test Cases Coverage&lt;/li&gt;
-  &lt;li&gt;Join by Creating Pull Requests against &lt;a href=&quot;https://github.com/apache/rocketmq-externals/tree/master/rocketmq-flume&quot;&gt;RocketMQ Flume Repository&lt;/a&gt;&lt;/li&gt;
-&lt;/ol&gt;</content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quo [...]
-January 5th 2017</summary></entry></feed>
+&lt;/ul&gt;</content><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quo [...]
diff --git a/content/release_notes/release-notes-4.2.0/index.html b/content/release_notes/release-notes-4.2.0/index.html
index 9edb2a3..ef40f67 100644
--- a/content/release_notes/release-notes-4.2.0/index.html
+++ b/content/release_notes/release-notes-4.2.0/index.html
@@ -488,7 +488,8 @@
 ">Previous</a>
     
     
-      <a href="#" class="pagination--pager disabled">Next</a>
+      <a href="/rocketmq/the-design-of-transactional-message/" class="pagination--pager" title="The Design Of Transactional Message
+">Next</a>
     
   </nav>
 
diff --git a/content/release_notes/release-notes-4.2.0/index.html b/content/rocketmq/the-design-of-transactional-message/index.html
similarity index 53%
copy from content/release_notes/release-notes-4.2.0/index.html
copy to content/rocketmq/the-design-of-transactional-message/index.html
index 9edb2a3..0228fa4 100644
--- a/content/release_notes/release-notes-4.2.0/index.html
+++ b/content/rocketmq/the-design-of-transactional-message/index.html
@@ -13,30 +13,30 @@
 
 
 
-<title>Release Notes - Apache RocketMQ - Version 4.2.0 - Apache RocketMQ</title>
+<title>The Design Of Transactional Message - Apache RocketMQ</title>
 
 
 
 
-<meta name="description" content="Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
+<meta name="description" content="     On This Page  Concept Introduction  Concept Introduction">
 
 
 
 
 <meta property="og:locale" content="en">
 <meta property="og:site_name" content="Apache RocketMQ">
-<meta property="og:title" content="Release Notes - Apache RocketMQ - Version 4.2.0">
+<meta property="og:title" content="The Design Of Transactional Message">
 
 
 
 
-  <meta property="og:description" content="Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
+  <meta property="og:description" content="     On This Page  Concept Introduction  Concept Introduction">
 
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
-  <meta name="twitter:title" content="Release Notes - Apache RocketMQ - Version 4.2.0">
-  <meta name="twitter:description" content="Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
+  <meta name="twitter:title" content="The Design Of Transactional Message">
+  <meta name="twitter:description" content="     On This Page  Concept Introduction  Concept Introduction">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-12-13T00:00:00+08:00">
+  <meta property="article:published_time" content="2018-07-13T00:00:00+08:00">
 
 
 
@@ -286,15 +286,15 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="Release Notes - Apache RocketMQ - Version 4.2.0">
-    <meta itemprop="description" content="Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
-    <meta itemprop="datePublished" content="December 13, 2017">
+    <meta itemprop="headline" content="The Design Of Transactional Message">
+    <meta itemprop="description" content="     On This Page  Concept Introduction  Concept Introduction">
+    <meta itemprop="datePublished" content="July 13, 2018">
     
 
     <div class="page__inner-wrap">
       
         <header>
-          <h1 class="page__title" itemprop="headline">Release Notes - Apache RocketMQ - Version 4.2.0
+          <h1 class="page__title" itemprop="headline">The Design Of Transactional Message
 </h1>
           
             <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -302,110 +302,76 @@
 
 
 
-  2 minute read
+  1 minute read
 </p>
           
         </header>
       
 
       <section class="page__content" itemprop="text">
-        <p>Below is a summary of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to <a href="/docs/quick-start/">Quick Start</a>.</p>
+        <aside class="sidebar__right">
+<nav class="toc">
+    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+  <li><a href="#concept-introduction" id="markdown-toc-concept-introduction">Concept Introduction</a></li>
+  <li><a href="#execute-flow-chart" id="markdown-toc-execute-flow-chart">Execute Flow Chart</a></li>
+  <li><a href="#detailed-design" id="markdown-toc-detailed-design">Detailed Design</a></li>
+</ul>
 
-<h2> Download the 4.2.0 release
-</h2>
+  </nav>
+</aside>
+<h1 id="concept-introduction">Concept Introduction</h1>
 
-<ul>
-  <li>Source: <a href="https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip">rocketmq-all-4.2.0-source-release.zip</a> [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.asc">PGP</a>] [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.md5">MD5</a>] [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip.sha1">SHA1</a>]</li>
-  <li>Binary: <a href="https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip">rocketmq-all-4.2.0-bin-release.zip</a> [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.asc">PGP</a>] [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.md5">MD5</a>] [<a href="https://www.apache.org/dist/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip.sha1">SHA1</a>]</li>
-</ul>
+<blockquote>
+  <p>Half(Prepare) Message</p>
+</blockquote>
 
-<h2 id="new-feature">New Feature</h2>
+<p>Refers to a message that cannot be delivered temporarily. When a message is successfully sent to the MQ server, but the server did not receive the second acknowledgement of the message from the producer, then the message is marked as “temporarily undeliverable”. The message in this status is called a half message.</p>
 
-<ul>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-28">ROCKETMQ-28</a>] -         Support transportation layer security
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-224">ROCKETMQ-224</a>] -       Suppport log4j2 in Client
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-294">ROCKETMQ-294</a>] -       Support flow control by number and size dimensions for PushConsumer
-</li>
-</ul>
+<blockquote>
+  <p>Message Status Check</p>
+</blockquote>
 
-<h2 id="improvement">Improvement</h2>
-
-<ul>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-6">ROCKETMQ-6</a>] -         Use logger for exceptions instead of e.printStackTrace()
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-23">ROCKETMQ-23</a>] -     Better to return true when MappedFileQueue#flush is successful
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-96">ROCKETMQ-96</a>] -     Rename tmp variable 
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-258">ROCKETMQ-258</a>] -   Move benchmark scripts to distribution module
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-259">ROCKETMQ-259</a>] -   Reduce reflection calls when decode remoting command header
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-263">ROCKETMQ-263</a>] -   Reduce the cost of the unit test in OpenMessaging modules
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-266">ROCKETMQ-266</a>] -   Polish the exception message when  consumerThreadMax is smaller than consumerThreadMin
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-273">ROCKETMQ-273</a>] -   Simplify the code when the method has no write operation
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-279">ROCKETMQ-279</a>] -   Add consistent check for commit log data and consume queue data when start the broker
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-281">ROCKETMQ-281</a>] -       Add check to prevent repeating starting broker
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-307">ROCKETMQ-307</a>] -   Change JVM arguments for java 8 and direct memory GC
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-308">ROCKETMQ-308</a>] -   Improve broker register speed by increasing socket buffer size of name server 
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-311">ROCKETMQ-311</a>] -   Add fast failure mechanism for pull-request queue of broker
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-312">ROCKETMQ-312</a>] -   Use independent thread pool for QueryMessageProcessor
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-315">ROCKETMQ-315</a>] -   Enhance default settings of TLS
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-323">ROCKETMQ-323</a>] -   Release semaphore after callback is finished in async process
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-324">ROCKETMQ-324</a>] -   Expose an interface for client to specify the async call back executor
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-327">ROCKETMQ-327</a>] -   Add an interface to support decrypt a encrypted private key file
-</li>
-</ul>
+<p>Network disconnection or producer application restart may result in the loss of the second acknowledgement of a transactional message. When MQ server finds that a message remains a half message for a long time, it will send a request to the message producer, checking the final status of the message (Commit or Rollback).</p>
 
-<h2 id="bug">Bug</h2>
-
-<ul>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-231">ROCKETMQ-231</a>] -   Fix the pull result size
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-234">ROCKETMQ-234</a>] -   Fix double-return bug in batch scenario
-</li>
-
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-238">ROCKETMQ-238</a>] -    Make sure catch the exception in a periodic task of ScheduledExecutorService 
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-242">ROCKETMQ-242</a>] -   Make sure the client could fetch nameSrvAddr periodly
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-254">ROCKETMQ-254</a>] -   Fix the random test failure of LoggerAppender and reduce the cost time
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-260">ROCKETMQ-260</a>] -   Fix the wrong lock when destroy IndexService
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-270">ROCKETMQ-270</a>] -   Make sure the slave broker could start normally if master broker has cleaned commit log
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-277">ROCKETMQ-277</a>] -   Fix the exception in getLocalHost when server hostname not in hosts
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-284">ROCKETMQ-284</a>] -   Make sure the sql filter is not conflict with old tag filter
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-285">ROCKETMQ-285</a>] -   Fix the file test error when make link
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-291">ROCKETMQ-291</a>] -   Fix the UnknownFormatConversionException of System.out.printf
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-292">ROCKETMQ-292</a>] -   Fix exit problem in main thread when args parsing problem occurs
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-320">ROCKETMQ-320</a>] -   Make sure no message loss when shutdown with dispatch behind
-</li>
-<li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-321">ROCKETMQ-321</a>] -   Make sure do not delete mapped files in the middle
-</li>
+<h1 id="execute-flow-chart">Execute Flow Chart</h1>
 
-</ul>
+<p><img src="/assets/images/blog/transaction-execute-flow.png" alt="screenshot" /></p>
+<ol>
+  <li>Producer send half message to MQ server.</li>
+  <li>After send half message succeed, execute local transaction.</li>
+  <li>Send commit or rollback message to MQ Server based on local transaction results.</li>
+  <li>If commit/rollback message missed or producer pended during the execution of local transaction,MQ server will send check message to each producers in the same group to obtain transaction status.</li>
+  <li>Producer reply commit/rollback message based on local transaction status.</li>
+  <li>Committed message will be delivered to consumer but rolled back message will be discarded by MQ server.</li>
+</ol>
+
+<h1 id="detailed-design">Detailed Design</h1>
+<blockquote>
+  <p>Outline:</p>
+</blockquote>
+
+<p><img src="/assets/images/blog/transaction-outline-design.png" alt="screenshot" /><br />
+Just as the figure shows, in order to mask the underlying implementation of storage, all transactional message operations focus on the transaction service interface.
+RocketMQ provides a default implementation with its own storage system,and we used a transaction bridge to implement our transactional storage logic,instead of modify RocketMQ’s storage layer directly.</p>
+
+<blockquote>
+  <p>Sending transactional message:</p>
+</blockquote>
+
+<p><img src="/assets/images/blog/sending-transactional-message.png" alt="screenshot" /><br />
+This figure describes the timing relationships of sending transactional message. From this figure, we can clearly see that how transactional messages are committed in two phases.</p>
+
+<blockquote>
+  <p>Checking transactional message:</p>
+</blockquote>
+
+<p><img src="/assets/images/blog/checking-transactional-message.png" alt="screenshot" /><br />
+This figure describes the checking logic for transactional messages,when MQ server finds that a message remains a half message for a long time,it will send a request to the message producer,to get the status of the current transaction.</p>
 
+<blockquote>
+  <p>Design Motivation:</p>
+</blockquote>
 
         
       </section>
@@ -426,7 +392,7 @@
     
       
       
-      <a href="/tags/#release-notes" class="page__taxonomy-item" rel="tag">Release_Notes</a><span class="sep">, </span>
+      <a href="/tags/#message-oriented-middleware" class="page__taxonomy-item" rel="tag">Message Oriented Middleware</a><span class="sep">, </span>
     
       
       
@@ -434,7 +400,7 @@
     
       
       
-      <a href="/tags/#version" class="page__taxonomy-item" rel="tag">Version</a>
+      <a href="/tags/#transaction" class="page__taxonomy-item" rel="tag">Transaction</a>
     
     </span>
   </p>
@@ -455,14 +421,14 @@
     
       
       
-      <a href="/categories/#release-notes" class="page__taxonomy-item" rel="tag">Release_Notes</a>
+      <a href="/categories/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a>
     
     </span>
   </p>
 
 
         
-          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-12-13T00:00:00+08:00">December 13, 2017</time></p>
+          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2018-07-13T00:00:00+08:00">July 13, 2018</time></p>
         
       </footer>
 
@@ -471,20 +437,20 @@
     <h4 class="page__share-title">Share on</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Release Notes - Apache RocketMQ - Version 4.2.0 /release_notes/release-notes-4.2.0/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=The Design Of Transactional Message /rocketmq/the-design-of-transactional-message/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 
-  <a href="https://www.facebook.com/sharer/sharer.php?u=/release_notes/release-notes-4.2.0/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+  <a href="https://www.facebook.com/sharer/sharer.php?u=/rocketmq/the-design-of-transactional-message/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 
-  <a href="https://plus.google.com/share?url=/release_notes/release-notes-4.2.0/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+  <a href="https://plus.google.com/share?url=/rocketmq/the-design-of-transactional-message/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 
-  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/release_notes/release-notes-4.2.0/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/rocketmq/the-design-of-transactional-message/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 </section>
 
 
       
   <nav class="pagination">
     
-      <a href="/rocketmq/Field-Report-Meetup-Beijing/" class="pagination--pager" title="Field Report of Apache RocketMQ Meetup Beijing
+      <a href="/release_notes/release-notes-4.2.0/" class="pagination--pager" title="Release Notes - Apache RocketMQ - Version 4.2.0
 ">Previous</a>
     
     
diff --git a/content/sitemap.xml b/content/sitemap.xml
index 850b846..0db1962 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -2,131 +2,135 @@
 <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>/about/team/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/about/contact/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/about/rewards/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/quick-start/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/motivation/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/core-concept/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/cli-admin-tool/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/cluster-deployment/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/pull-request/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/code-guidelines/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/documentation/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/faq/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/release-manual</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/dowloading/releases/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/roadmap/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/batch-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/broadcast-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/rmq-deployment/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/order-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/rmq-arc/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/schedule-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/simple-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/filter-by-sql92-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/logappender-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/openmessaging-example/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/system-config/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/how-to-contribute/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
+</url>
+<url>
+<loc>/docs/transaction-example/</loc>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-broker/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-consumer/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/create-pull-request/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-namesvr/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-producer/</loc>
-<lastmod>2018-07-12T14:39:16+08:00</lastmod>
+<lastmod>2018-07-13T15:55:40+08:00</lastmod>
 </url>
 <url>
 <loc>/rocketmq/how-to-support-more-queues-in-rocketmq/</loc>
@@ -177,6 +181,10 @@
 <lastmod>2017-12-13T00:00:00+08:00</lastmod>
 </url>
 <url>
+<loc>/rocketmq/the-design-of-transactional-message/</loc>
+<lastmod>2018-07-13T00:00:00+08:00</lastmod>
+</url>
+<url>
 <loc>/docs/quick-start/</loc>
 </url>
 <url>
@@ -258,6 +266,9 @@
 <loc>/docs/how-to-contribute/</loc>
 </url>
 <url>
+<loc>/docs/transaction-example/</loc>
+</url>
+<url>
 <loc>/about/</loc>
 </url>
 <url>
diff --git a/content/tags/index.html b/content/tags/index.html
index 499ea07..27f7917 100644
--- a/content/tags/index.html
+++ b/content/tags/index.html
@@ -417,6 +417,12 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 <!-- Push to group_names -->
 
 
@@ -497,6 +503,22 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 <!-- Push to group_names -->
 
 
@@ -634,6 +656,14 @@
 
 
 
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
 
   
   <h2 id="activity" class="archive__subtitle">Activity</h2>
@@ -989,6 +1019,43 @@ January 5th 2017
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/rocketmq/the-design-of-transactional-message/" rel="permalink">The Design Of Transactional Message
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">
+
+     On This Page
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction
+
+</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
 </a>
       
@@ -1172,6 +1239,43 @@ and fulfill much of this responsibility through managing...</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/rocketmq/the-design-of-transactional-message/" rel="permalink">The Design Of Transactional Message
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">
+
+     On This Page
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction
+
+</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.2.0
 </a>
       
@@ -1298,6 +1402,47 @@ and fulfill much of this responsibility through managing...</p>
   
 
   
+  <h2 id="transaction" class="archive__subtitle">Transaction</h2>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/rocketmq/the-design-of-transactional-message/" rel="permalink">The Design Of Transactional Message
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">
+
+     On This Page
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction
+
+</p>
+  </article>
+</div>
+  
+
+  
   <h2 id="version" class="archive__subtitle">Version</h2>
   
     
diff --git a/content/year-archive/index.html b/content/year-archive/index.html
index d771d32..e261370 100644
--- a/content/year-archive/index.html
+++ b/content/year-archive/index.html
@@ -288,6 +288,48 @@
 
   
   
+    <h2 id="2018" class="archive__subtitle">2018</h2>
+    
+  
+  
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/rocketmq/the-design-of-transactional-message/" rel="permalink">The Design Of Transactional Message
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">
+
+     On This Page
+
+  Concept Introduction
+
+
+  
+
+Concept Introduction
+
+</p>
+  </article>
+</div>
+
+  
+  
     <h2 id="2017" class="archive__subtitle">2017</h2>