<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Generic Message Buffering &#8211; Sandhata</title>
	<atom:link href="https://resources.sandhata.com/tag/generic-message-buffering/feed/" rel="self" type="application/rss+xml" />
	<link>https://resources.sandhata.com</link>
	<description>Transform the Business of IT</description>
	<lastBuildDate>Fri, 15 May 2026 09:35:26 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.26</generator>
	<item>
		<title>Generic Message Buffering &#124; Camunda 7</title>
		<link>https://resources.sandhata.com/generic-message-buffering-camunda-7/</link>
		<pubDate>Tue, 11 Jul 2023 13:49:08 +0000</pubDate>
		<dc:creator><![CDATA[Pravin Durai]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Cammunda Message buffering]]></category>
		<category><![CDATA[camunda]]></category>
		<category><![CDATA[Camunda 7]]></category>
		<category><![CDATA[camunda engine]]></category>
		<category><![CDATA[camunda-bpm-platform]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Innovation Platform]]></category>
		<category><![CDATA[Generic Message Buffering]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java 8]]></category>
		<category><![CDATA[message-buffer]]></category>
		<category><![CDATA[Sandhata]]></category>
		<category><![CDATA[Service Virtualization]]></category>
		<category><![CDATA[spring-boot]]></category>
		<category><![CDATA[Transformation]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=5497</guid>
		<description><![CDATA[<p>Imagine multiple messages waiting in a message catch event.   When a single throw event is triggered, the data is processed without any issues. However, if multiple message events are thrown simultaneously, only the first one is successfully processed, while the others fail.   This is because the message catch event is busy handling the first message [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/generic-message-buffering-camunda-7/">Generic Message Buffering | Camunda 7</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span data-contrast="auto">Imagine multiple messages waiting in a message catch event. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">When a single throw event is triggered, the data is processed without any issues. However, if multiple message events are thrown simultaneously, only the first one is successfully processed, while the others fail. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">This is because the message catch event is busy handling the first message event.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">We recently spotted this issue with Camunda 7’s message catch event.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<h2><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}">U</span><b><span data-contrast="auto">nlocking The Solution To This Challenge</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-contrast="auto">Our team of experts fabricated a groundbreaking &#8220;Generic Message Buffering&#8221; logic, with which we’ve revolutionised the way messages are processed asynchronously, effectively resolving any scenario you may encounter. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">Fig. 1.1 unveils the powerful list of message catch events eagerly awaiting the trigger.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<div id="attachment_5503" style="width: 310px" class="wp-caption aligncenter"><a href="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig1.1-1.png"><img class="size-medium wp-image-5503" src="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig1.1-1-300x117.png" alt="" width="300" height="117" srcset="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig1.1-1-300x117.png 300w, https://resources.sandhata.com/wp-content/uploads/2023/07/Fig1.1-1.png 602w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Fig1.1</p></div>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-contrast="auto">In Figure 2.1, we present the logic for Generic Message Buffering. By sending a POST request, we can activate the BPM process described below. Additionally, we have the ability to specify the retry count and retry delay as request parameters. Once the request is triggered, we conduct a basic validation to ensure all necessary information, such as message name, payload, process instance id, and business key, is present. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">If all the required data is available, we proceed to send the message to its destination within the &#8220;Message Send Task&#8221; depicted in Figure 2.1. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">If the message is successfully picked up and processed by the message catch event, we encounter no issues.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<div id="attachment_5500" style="width: 310px" class="wp-caption aligncenter"><a href="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig2.1.png"><img class="size-medium wp-image-5500" src="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig2.1-300x125.png" alt="" width="300" height="125" srcset="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig2.1-300x125.png 300w, https://resources.sandhata.com/wp-content/uploads/2023/07/Fig2.1.png 602w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Fig2.1</p></div>
<p><span data-contrast="auto">In a situation where the message catch event is already occupied processing another message, throwing our own message will result in failure. This is a common occurrence in real-time scenarios, and it is up to the developers to determine how the flow should be handled in such cases.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">In our specific case, the failed message will be caught by the boundary event. The error message will then be examined in detail within the &#8220;Read Error Message&#8221; process (Fig 2.1).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-contrast="auto">In the event of an error, we can:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Distinguish between errors that require retry logic. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="●" data-font="Calibri" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Determine if it is a business error or a technical error. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
<li data-leveltext="●" data-font="Calibri" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Necessitate the involvement of technical experts, if it happens to be a business error</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<p><span data-contrast="auto">When encountering a retriable error, we make an attempt to retry the operation. The number of retries and the delay between retries is determined by the input request.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<h2>Potential Scenarios In Re-try</h2>
<p><span data-contrast="auto">In the context of re-try logic, there are two potential scenarios to consider:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">In one of the re-try attempts, the message can be successfully delivered to the end system.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<div id="attachment_5506" style="width: 310px" class="wp-caption aligncenter"><a href="https://resources.sandhata.com/wp-content/uploads/2023/07/MicrosoftTeams-image-12.jpg"><img class="size-medium wp-image-5506" src="https://resources.sandhata.com/wp-content/uploads/2023/07/MicrosoftTeams-image-12-300x140.jpg" alt="" width="300" height="140" srcset="https://resources.sandhata.com/wp-content/uploads/2023/07/MicrosoftTeams-image-12-300x140.jpg 300w, https://resources.sandhata.com/wp-content/uploads/2023/07/MicrosoftTeams-image-12-768x358.jpg 768w, https://resources.sandhata.com/wp-content/uploads/2023/07/MicrosoftTeams-image-12-1024x478.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Fig 3.1</p></div>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Alternatively, if the maximum number of re-try attempts is reached without success, the message will be marked as an error.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559731&quot;:0,&quot;335559740&quot;:276}"> </span><span data-contrast="auto">If the maximum re-try attempts have been exceeded and the message still hasn&#8217;t been delivered successfully, it will require manual re-processing (see Fig 3.2).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<div id="attachment_5502" style="width: 310px" class="wp-caption aligncenter"><a href="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig3.2.png"><img class="wp-image-5502 size-medium" src="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig3.2-300x123.png" alt="" width="300" height="123" srcset="https://resources.sandhata.com/wp-content/uploads/2023/07/Fig3.2-300x123.png 300w, https://resources.sandhata.com/wp-content/uploads/2023/07/Fig3.2.png 602w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Fig 3.2</p></div>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p>&nbsp;</p>
<h2><span data-contrast="none"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559740&quot;:276}"> </span><b><span data-contrast="auto">Key Advantages</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></h2>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Streamlined Error Handling: </span></b><span data-contrast="auto">By effectively managing busy message catch events, we can significantly mitigate potential errors during data processing.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Efficient Data Re-processing: </span></b><span data-contrast="auto">Our approach allows for a substantial reduction in the amount of data that needs to undergo re-processing.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<ul>
<li data-leveltext="●" data-font="Calibri" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;●&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Versatile Solution:</span></b><span data-contrast="auto"> Utilizing the same bpmn models, we can easily adapt and apply them to various similar use cases simply by modifying the message name.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559740&quot;:276,&quot;335559991&quot;:360}"> </span></li>
</ul>
<h2><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><b><span data-contrast="auto">Optimizing Efficiency</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></h2>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span><span data-contrast="auto">In order to optimize efficiency, it is vital that both the target BPM and the message buffering BPM are connected to a centralized database. This will allow for seamless integration and streamlined performance. Maintaining a unified database instance is key to achieving optimal results.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559740&quot;:276}"> </span></p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/generic-message-buffering-camunda-7/">Generic Message Buffering | Camunda 7</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
