<?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>Development &#8211; Sandhata</title>
	<atom:link href="https://resources.sandhata.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>https://resources.sandhata.com</link>
	<description>Transform the Business of IT</description>
	<lastBuildDate>Mon, 21 Sep 2026 10:14:30 +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>The Hidden Costs of Poor Gateway Migration And How to Actually Fix Them</title>
		<link>https://resources.sandhata.com/the-hidden-costs-of-poor-gateway-migration-and-how-to-actually-fix-them/</link>
		<pubDate>Fri, 12 Sep 2025 04:20:26 +0000</pubDate>
		<dc:creator><![CDATA[balakarthiga muruganantham]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SHIFT]]></category>
		<category><![CDATA[Tools & Accelarators]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Collaboration]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Innovation Platform]]></category>
		<category><![CDATA[digital transformation]]></category>
		<category><![CDATA[Gus]]></category>
		<category><![CDATA[Sandhata GUS]]></category>
		<category><![CDATA[Sandhata Innovation As a Service]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=5844</guid>
		<description><![CDATA[<p>Migrating an API gateway isn’t the kind of task you toss to your IT team on a quiet Friday afternoon. It’s a business-defining move. One that has the power to set your company up for rapid growth or quietly drain it from the inside.  When we think of Gateway Migration, most leaders still envision a [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/the-hidden-costs-of-poor-gateway-migration-and-how-to-actually-fix-them/">The Hidden Costs of Poor Gateway Migration And How to Actually Fix Them</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span data-contrast="auto">Migrating an API gateway isn’t the kind of task you toss to your IT team on a quiet Friday afternoon. It’s a business-defining move. One that has the power to set your company up for rapid growth or quietly drain it from the inside.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">When we think of </span><b><span data-contrast="auto">Gateway Migration</span></b><span data-contrast="auto">, most leaders still envision a straightforward process: move the routes, update a few configurations, push it live, and move on. But beneath the surface, a botched migration can cause silent damage: lost trust, security holes, and operational slowdowns that compound quietly until they explode.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Why do so many businesses fall into this trap? It’s because they see gateway migration as purely technical. Something for architects and DevOps teams to figure out in their corner. But the truth? Every migration is a high-leverage moment. It touches your customers, your brand, and your future growth.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">The Real Problem: Outdated Migration Mindsets</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">A traditional </span><b><span data-contrast="auto">API Gateway Migration</span></b><span data-contrast="auto"> is like trying to replace your airplane’s engines mid-flight. Without any clear instructions and using tools you don’t fully understand.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Companies rely on manual processes, patchy documentation, and scattered tribal knowledge. They think they can simply replicate what they have, move it somewhere else, and expect it to work. But when you do that, you risk so much more than downtime. You risk your reputation.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">I once spoke to a CTO of a fintech company who described their manual migration as “building a new house without a blueprint, while trying to host a dinner party in it.” They lost customer trust overnight due to authentication errors and saw a 15% churn spike within weeks.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Let’s be clear: your API gateway is not a back-office utility. It’s your frontline. It’s how customers experience your product;  from login to checkout. Every request passes through it, every second of uptime matters, and every vulnerability is a potential headline risk.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">The Hidden Costs of a Broken Gateway Migration</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">When you think about </span><b><span data-contrast="auto">Gateway Modernization</span></b><span data-contrast="auto">, it’s tempting to focus on new features and shiny dashboards. But consider what happens if the migration fails or drags on:</span><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Downtime and Lost Revenue</span></b><span data-contrast="auto">: Every minute of downtime chips away at your bottom line. For large e-commerce platforms, a single hour of downtime can mean millions in lost transactions.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Broken User Journeys</span></b><span data-contrast="auto">: Imagine a customer trying to check out and running into a gateway error. Or a partner API integration failing silently. You lose them and they rarely come back.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Security Risks</span></b><span data-contrast="auto">: During migration, outdated configurations and manual processes create gaps. Attackers look for these windows. One overlooked misconfiguration can lead to data breaches, compliance fines, and brand damage that takes years to repair.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="4" data-aria-level="1"><b><span data-contrast="auto">Opportunity Cost</span></b><span data-contrast="auto">: Your teams get stuck firefighting instead of innovating. They spend cycles patching issues, troubleshooting errors, and rolling back partial migrations. Meanwhile, your competitors ship new features and capture market share.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-contrast="auto">The worst part? Most of these costs don’t appear on your financial reports right away. They appear in the form of slower product velocity, lower NPS scores, rising customer support tickets, and gradually declining market relevance.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Why Most Gateway Migrations Fail</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Traditional gateway migrations fail for a simple reason: they depend too heavily on human memory, manual scripts, and rigid one-size-fits-all approaches.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Many enterprises believe they can simply “lift and shift” configurations. But APIs aren’t furniture. They’re living systems with interconnected policies, security layers, traffic rules, and rate limits.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Manual migration often looks like this:</span><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Copying JSON or YAML configurations manually.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Running untested scripts with partial coverage.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Fixing errors reactively during live traffic.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Relying on individual knowledge rather than systemic visibility.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-contrast="auto">This is like trying to change the foundation of a skyscraper while tenants are still living inside. All without an architect’s plan.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Why “Lift and Shift” is a False Economy</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">The illusion goes like this: </span><i><span data-contrast="auto">“If we just replicate configs, it’ll be fine.”</span></i><br />
<span data-contrast="auto">The reality? APIs are not furniture you can move from one house to another. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">They’re living organisms: arteries and veins carrying the lifeblood of your business. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">They evolve constantly: new rate limits, layered security tokens, policies shaped by customer traffic, regulatory changes, and partner demands.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">When you treat migration like copy-paste, you ignore the invisible dependencies that actually keep your system alive.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Think of it this way: trying to “lift and shift” a gateway is like trying to replicate New York City by drawing its roads on a map but forgetting the plumbing, the power grid, and the telecom lines. On paper, it looks complete. In practice, the city collapses the moment people move in.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Enter GUS: The Gateway Utility Service</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">GUS doesn’t copy. It diagnoses, understands, and redesigns. It flips the script by treating migration not as a mechanical task, but as an engineering transformation.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Think of GUS as an architect who refuses to renovate a skyscraper until he’s audited every load-bearing column, every fire exit, every piece of wiring. The tenants don’t feel a tremor but the building emerges stronger, safer, and more valuable than before.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">How GUS Works:</span></b><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Extraction &amp; Analysis</span></b><br />
<span data-contrast="auto">GUS doesn’t just scrape configs. It performs a forensic deep dive into every route, token, and policy. Every shadow dependency is dragged into the light, mapped, and assessed for compatibility.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Tailored Migration Framework</span></b><br />
<span data-contrast="auto">Unlike rigid scripts, GUS adapts. Whether you need blue-green deployments, zero-downtime cutovers, or microservice-friendly designs, GUS bends to your business. Not the other way around.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Secure &amp; Private</span></b><br />
<span data-contrast="auto">In industries where compliance is non-negotiable, GUS runs entirely on-prem. Sensitive data never leaves your infrastructure. You modernize without opening new risk windows.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Case Studies That Prove the Point</span></b><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Payments Giant</span></b><br />
<span data-contrast="auto">A global payments firm sat on 2,000+ routes they were terrified to migrate. With GUS, the entire move completed in 14 weeks without a single catastrophic incident. The payoff?</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="2"><span data-contrast="auto">40% faster checkout flows</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="2"><span data-contrast="auto">25% reduction in infrastructure costs</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="2"><span data-contrast="auto">60% fewer API-related support tickets</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Telecom Provider</span></b><br />
<span data-contrast="auto">This telco wasted two years and millions on manual attempts. Each “lift and shift” iteration broke in new ways. With GUS, migration time dropped from 18 months to just 5 months. They also escaped vendor lock-in that had quietly cost them innovation for half a decade.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Healthcare Firm</span></b><br />
<span data-contrast="auto">Compliance audits had become a nightmare after every change cycle. Post-GUS migration, the firm passed audits with zero exceptions. Saving them from both regulatory fines and reputational fallout.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">The Strategic Advantage of Gateway Automation</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">API Gateway Automation is not just “faster.” It is </span><b><span data-contrast="auto">leverage</span></b><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Automated audits surface vulnerabilities long before go-live.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Consistent, repeatable deployments slash defect rates.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Dynamic policies adapt in real time to changing traffic. No midnight patches, no duct tape fixes.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-contrast="auto">This is the difference between firefighting every month and iterating every week. Between survival mode and growth mode.</span><span data-ccp-props="{}"> </span></p>
<p><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">The Cost of Doing Nothing</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Delaying modernization is not “safe.” It’s compounding risk. Every month spent on a legacy gateway is another month of:</span><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Lost Deals</span></b><span data-contrast="auto">. Partners walk away when integrations fail.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Innovation Lag</span></b><span data-contrast="auto"> . While competitors ship features, you patch holes.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="10" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Cultural Decay</span></b><span data-contrast="auto">. Teams begin fearing change instead of driving it.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-contrast="auto">One CTO put it bluntly after his firm’s migration failure: </span><i><span data-contrast="auto">“We didn’t just lose uptime. We lost ambition.”</span></i><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Build the Future, Not the Past</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Gateway modernization is no longer optional. It’s foundational. With GUS, migration transforms from a liability into a growth lever.</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">Here’s the offer to every leader reading this:</span></b><span data-ccp-props="{}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Audit your configs before they break in production.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Automate migration to protect customer trust.</span><span data-ccp-props="{}"> </span></li>
</ul>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Build a backbone that not only supports innovation but also accelerates it.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><b><span data-contrast="auto">Wrapping Up</span></b><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto"> Modernisation isn’t about keeping the lights on. It’s about laying the runway for your next decade of growth. And with GUS, that runway is clear, reinforced, and wide enough to carry your boldest ambitions.</span><span data-ccp-props="{}"> </span></p>
<p>You can get Gus here: <a href="https://www.sandhata.com/contact-us">https://www.sandhata.com/contact-us</a></p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/the-hidden-costs-of-poor-gateway-migration-and-how-to-actually-fix-them/">The Hidden Costs of Poor Gateway Migration And How to Actually Fix Them</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Sandhata&#8217;s DevOps Mastery: Digital Evolution Starts Here</title>
		<link>https://resources.sandhata.com/sandhatas-devops-mastery-digital-evolution-starts-here/</link>
		<pubDate>Mon, 08 Apr 2024 11:49:08 +0000</pubDate>
		<dc:creator><![CDATA[balakarthiga muruganantham]]></dc:creator>
				<category><![CDATA[Sandhata Landing Pages]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Innovation Platform]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[partnership]]></category>
		<category><![CDATA[Service Virtualization]]></category>
		<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Transformation]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=5657</guid>
		<description><![CDATA[<p>&#160; &#160; &#160;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/sandhatas-devops-mastery-digital-evolution-starts-here/">Sandhata&#8217;s DevOps Mastery: Digital Evolution Starts Here</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer.jpg"><img class="alignnone  wp-image-5660" src="https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer-120x300.jpg" alt="Sandhata DevOps Capablities" width="740" height="1850" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer-120x300.jpg 120w, https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer-768x1920.jpg 768w, https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer-410x1024.jpg 410w, https://resources.sandhata.com/wp-content/uploads/2024/04/DevOps-Flyer.jpg 800w" sizes="(max-width: 740px) 100vw, 740px" /></a></p>
<p>&nbsp;</p>
<p><a href="https://www.linkedin.com/company/239649/admin/feed/posts/" target="_blank" rel="noopener"><img class="size-medium wp-image-5646 alignleft" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-300x94.png" alt="" width="300" height="94" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-300x94.png 300w, https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel.png 320w" sizes="(max-width: 300px) 100vw, 300px" /></a> <a href="https://resources.sandhata.com/sandhata-company/contact-and-office-information/" target="_blank" rel="noopener"><img class="size-medium wp-image-5645 alignright" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1-300x94.png" alt="" width="300" height="94" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1-300x94.png 300w, https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1.png 320w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/sandhatas-devops-mastery-digital-evolution-starts-here/">Sandhata&#8217;s DevOps Mastery: Digital Evolution Starts Here</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Unlocking Techno-Strategic Synergy: Solving Digital Dilemmas for Exponential Success</title>
		<link>https://resources.sandhata.com/unlocking-techno-strategic-synergy-solving-digital-dilemmas-for-exponential-success/</link>
		<pubDate>Mon, 08 Apr 2024 09:44:19 +0000</pubDate>
		<dc:creator><![CDATA[balakarthiga muruganantham]]></dc:creator>
				<category><![CDATA[Sandhata Landing Pages]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Cammunda Message buffering]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Innovation Platform]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Service Virtualization]]></category>
		<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Transformation]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=5653</guid>
		<description><![CDATA[<p>&#160; &#160;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/unlocking-techno-strategic-synergy-solving-digital-dilemmas-for-exponential-success/">Unlocking Techno-Strategic Synergy: Solving Digital Dilemmas for Exponential Success</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer.png"><img class="alignnone  wp-image-5664" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-212x300.png" alt="" width="733" height="1037" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-212x300.png 212w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-768x1086.png 768w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-724x1024.png 724w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer.png 1414w" sizes="(max-width: 733px) 100vw, 733px" /></a></p>
<p><a href="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1.png"><img class="alignnone  wp-image-5662" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1-212x300.png" alt="" width="734" height="1038" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1-212x300.png 212w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1-768x1086.png 768w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1-724x1024.png 724w, https://resources.sandhata.com/wp-content/uploads/2024/04/Integration-Flyer-1.png 1414w" sizes="(max-width: 734px) 100vw, 734px" /></a></p>
<p><a href="https://resources.sandhata.com/sandhata-company/contact-and-office-information/" target="_blank" rel="noopener"><img class="size-medium wp-image-5645 alignleft" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1-300x94.png" alt="" width="300" height="94" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1-300x94.png 300w, https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-1.png 320w" sizes="(max-width: 300px) 100vw, 300px" /></a> <a href="https://www.linkedin.com/company/239649/admin/feed/posts/" target="_blank" rel="noopener"><img class="size-medium wp-image-5646 alignright" src="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-300x94.png" alt="" width="300" height="94" srcset="https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel-300x94.png 300w, https://resources.sandhata.com/wp-content/uploads/2024/04/Colorful-Simple-Twitch-Panel.png 320w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/unlocking-techno-strategic-synergy-solving-digital-dilemmas-for-exponential-success/">Unlocking Techno-Strategic Synergy: Solving Digital Dilemmas for Exponential Success</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<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>
		<item>
		<title>We Are Sandhata &#8211; Meet Janani</title>
		<link>https://resources.sandhata.com/we-are-sandhata-meet-janani/</link>
		<pubDate>Thu, 10 Feb 2022 16:21:14 +0000</pubDate>
		<dc:creator><![CDATA[Janani Priya]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=4586</guid>
		<description><![CDATA[<p>We talk to Janani Priya who recently joined Sandhata as a graduate. She shares how she managed joining Sandhata during COVID, and her experiences so far. &#160; Tell us a bit about yourself Hello, my name is Janani. I am from Chennai, India. In September 2020 I graduated from Dr. MGR Educational and Research Institute [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/we-are-sandhata-meet-janani/">We Are Sandhata &#8211; Meet Janani</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>We talk to Janani Priya who recently joined Sandhata as a graduate. She shares how she managed joining Sandhata during COVID, and her experiences so far.</p>
<p>&nbsp;</p>
<h4>Tell us a bit about yourself</h4>
<p>Hello, my name is Janani. I am from Chennai, India. In September 2020 I graduated from Dr. MGR Educational and Research Institute University with a degree in Engineering BTech (Information Technology). I really enjoyed my studies and am very proud to have secured the 2<sup>nd</sup> highest marks in my year.</p>
<p>During my course, I studied SQL, Java, Web Development and also achieved Prelims Level in “BEC &#8211; Business English Certificate”.</p>
<p>&nbsp;</p>
<p><span id="more-4586"></span></p>
<h4>What did you do once you graduated?</h4>
<p>During the COVID pandemic, getting job as a fresher is like “a tough row to hoe”. [Note: See Janani&#8217;s <a href="https://resources.sandhata.com/tips-tricks-for-freshers/">Tips &amp; Tricks for Freshers post</a>.] But without losing hope and I continued searching and eventually found a job in a logistics company as “Executive Documentation – Back End”, which is a non-IT industry.</p>
<p>Even though this wasn’t my first choice of industry I threw myself into the role to gain knowledge and skills and learnt everything I could about shipping and logistics.</p>
<p>&nbsp;</p>
<h4><img class=" wp-image-4585 alignleft" src="https://resources.sandhata.com/wp-content/uploads/2022/02/Janani-Priya-2-223x300.jpg" alt="Image of Janani Priya standing in a shopping centre" width="318" height="427" srcset="https://resources.sandhata.com/wp-content/uploads/2022/02/Janani-Priya-2-223x300.jpg 223w, https://resources.sandhata.com/wp-content/uploads/2022/02/Janani-Priya-2.jpg 587w" sizes="(max-width: 318px) 100vw, 318px" />How did you come to join Sandhata?</h4>
<p>Though I had a job now, I knew I wanted to work in IT, so I kept my IT skills up to date, and kept my profile active on all job sites as well as social media. Soon, by God&#8217;s grace, I was contacted by a recruiter and managed to get this role at Sandhata as “Trainee Analyst”.</p>
<p>&nbsp;</p>
<h4>How was your experience joining Sandhata during COVID?</h4>
<p>I found the joining experience very smooth. I was happy and excited to receive my laptop and joiners kit before my start date! Whenever I had any question or needed support I reached out and got help quickly.</p>
<p>&nbsp;</p>
<h4>Which projects have you worked on since joining Sandhata?</h4>
<p>My first task upon joining Sandhata was on web development, in which I got to use my skills gained at university. I have also worked on some internal Sandhata projects where I have made strong connections with my team mates and gained skills such as GIT, UI testing, HTML and more. During each of my different initial projects I was asked to deliver a mock project to test my knowledge and deepen my learning on each topic.</p>
<p>Recently I was posted to one of our clients where I joined a team working as a microservices developer on an exciting <a href="https://resources.sandhata.com/microservices/">microservices</a> project. It was so interesting, and I got exposure to tools such as Splunk, Kubernetes, JIRA, Postman, Hibernate, Maven, and Spring Boot. I have also worked on presentations and documents to help onboard other people to join the microservices team smoothly in future.</p>
<p>&nbsp;</p>
<h4>What is next for you, Janani?</h4>
<p>I have recently done a certification course on Responsive Web Design and I am hoping to gain skills in other areas too, for example test automation, CICD, <a href="https://resources.sandhata.com/what-we-do-system-integration/">Integration</a>, as well as presentation and writing skills.</p>
<blockquote><p>&#8220;My time as Sandhata so far has nurtured my skills, helped me to gain confidence and realise how I can make my maximum contribution to Sandhata and our clients.&#8221;</p></blockquote>
<p>My experience and perspective have broadened and the training I have provided others has strengthened my skills in many areas. Thank you, Sandhata, for supporting me.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Learn More</h2>
<p>If you are interested in joining Sandhata, <a href="https://resources.sandhata.com/careers/">check out our careers page</a> for the latest job openings and how to contact us.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/we-are-sandhata-meet-janani/">We Are Sandhata &#8211; Meet Janani</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Do you want to achieve quick wins? (Hint: Focus on Minimum Viable Product)</title>
		<link>https://resources.sandhata.com/achieve-quick-wins-minimum-viable-product/</link>
		<pubDate>Tue, 14 Jul 2020 13:51:08 +0000</pubDate>
		<dc:creator><![CDATA[Bronwyn Davies]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">https://resources.sandhata.com/?p=3563</guid>
		<description><![CDATA[<p>DevOps is all about fast and frequent deployments, measuring value and continual improvement. I&#8217;m sure you have heard about reducing batch sizes in order to decrease lead time, increase deployment frequency and improve stability and quality. Well, focusing on the minimum viable product is one way to reduce batch sizes and enable more frequent deployments. [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/achieve-quick-wins-minimum-viable-product/">Do you want to achieve quick wins? (Hint: Focus on Minimum Viable Product)</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="https://resources.sandhata.com/what-we-do-devops/">DevOps</a> is all about fast and frequent deployments, measuring value and continual improvement. I&#8217;m sure you have heard about reducing batch sizes in order to decrease lead time, increase deployment frequency and improve stability and quality. Well, focusing on the minimum viable product is one way to reduce batch sizes and enable more frequent deployments.</p>
<p>&nbsp;</p>
<h5><strong>What is meant by Minimum Viable Product (MVP)?</strong></h5>
<p>A product which is delivered with just enough features/capabilities to satisfy a subset of users and validate a business use case. Once the product is released, the subset of users will provide feedback which will drive the direction and delivery of subsequent features (or halt development if the product does not appear to have viable business value). Products generally follow an iterative deployment model, and the product evolves through multiple deployments before the product is seen as &#8216;complete&#8217;.</p>
<p>&nbsp;</p>
<p><span id="more-3563"></span></p>
<h5><strong>Why is Minimum Viable Product such a powerful idea?</strong></h5>
<ol>
<li><strong>There is less upfront investment required.</strong></li>
</ol>
<p>Being able to deliver a product to real users without high upfront resource and system cost can often make the difference between being able to release a product and not! Where there is a low budget, creating a minimum viable product may be the only way you can deliver to real users.</p>
<ol start="2">
<li><strong>You get fast feedback!</strong></li>
</ol>
<p>By releasing a working product to test you get real feedback from real users. This enables you (and them) to learn how they actually use the product rather than how you think it will be used or the capabilities discussed during requirements gathering. This is super valuable. You will also get hands-on experience from the activities required to deploy and run your product and may notice something which hadn&#8217;t been considered before.</p>
<ol start="3">
<li><strong>It will help maintain momentum in your project.</strong></li>
</ol>
<p>When developers have their work used by real users and they get real feedback on it, it is very satisfying and motivating. Similarly, from the users perspective, being able to use a new product quickly and have a visible impact on the direction of the product is rewarding for the users and they will have renewed buy-in in the product.</p>
<ol start="4">
<li><strong>You can check the business viability of the entire solution.</strong></li>
</ol>
<p>The purpose of Minimum Viable Product is to test business viability. It means we are able to validate what we are delivering. Is the product what we need? Does it deliver what we hoped it would? Will it solve their problem? Is it fit for purpose? How does it need to evolve? If we don&#8217;t do this business validation, we risk investing a lot of time and effort in a solution which may not satisfy the business need.</p>
<ol start="5">
<li><strong>You can confirm (or reject) your hypothesis of the most important features to the user.</strong></li>
</ol>
<p>Real experience will inform your understanding of which features are really critical to users and therefore which features should get maximum focus during UX design and testing.</p>
<ol start="6">
<li><strong>It gives you a better understanding of the product compared to spending more time on upfront design.</strong></li>
</ol>
<p>Spending time on product design is important of course, but no matter how detailed the design is, it is never possible to think of every user scenario at the design stage. You will be able to make better decisions about your product based on real world feedback and your understanding of how the product actually functions, compared to more thorough design and how you imagine your product will function. This helps greatly when planning future development work on your product, giving you much more confidence when designing and estimating enhancements.</p>
<p>7.  <strong>You can evolve your product over time to achieve a better end product.</strong></p>
<p>Delivering a product to a set of users and getting feedback enables you to change and evolve the product design based on your experience of building and running it.</p>
<ol start="8">
<li><strong>It is easier to spot features which are NOT required.</strong></li>
</ol>
<p>During the requirements gathering phase, lots of product features / ideas will inevitably come up (&#8220;Wouldn&#8217;t it be nice if…&#8221;, &#8220;How about we build something which can…&#8221;, etc.). It can be hard to get to the bottom of which features are mandatory and which ones are nice to have. We may end up over-engineering the solution and delivering things which aren&#8217;t really needed by the client or won&#8217;t add much value. By delivering an MVP quickly, both the project team and the users have got a much better foundation on which to decide which features are actually necessary in future iterations of release. Needless to say, the smaller, simpler, and less dependent the product is, the less development, testing, documenting, handover, deployment and maintenance is required.</p>
<ol start="9">
<li><strong>You can validate the root cause of a perceived issue.</strong></li>
</ol>
<p>You may identify that something (which has previously been considered a problem), isn&#8217;t actually a problem which needs addressing. For example, perhaps the previous consensus was that a particular feature needs to be rewritten in X language (e.g. moved off mainframe), the MVP will give you the opportunity to validate the real root cause of this issue.</p>
<ol start="10">
<li><strong>Batch sizes will be smaller, and you can deploy more frequently.</strong></li>
</ol>
<p>Delivering a smaller (lighter) product will enable you to make more frequent deployments as there are fewer moving parts. This aligns with reducing batch sizes allowing an iterative approach to product delivery, in line with DevOps principles.</p>
<ol start="11">
<li><strong>Enable a culture of continual learning and improvement.</strong></li>
</ol>
<p>Following the MVP approach encourages a culture of experimentation and therefore learning for the whole team. This will result in better employee engagement, improved skills and ultimately better business outcomes.</p>
<ol start="12">
<li><strong>Increased job satisfaction.</strong></li>
</ol>
<p>There are few things more motivating for a developer than seeing your hard efforts quickly rewarded with real users using your product and gaining value from it.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>From reading the long list above, you may start to think that adopting the minimum viable product approach will solve all your problems! But this isn&#8217;t completely true.</p>
<p>&nbsp;</p>
<p><strong>Here are a few things you should bear in mind to ensure the MVP approach works for you:</strong></p>
<ol>
<li>The scope of the MVP needs to be such that is enables you to assess the business viability of the product. If the product has too few features or poor UX and users do not use it, then it does not serve the purpose of the MVP.</li>
<li>Make sure you consider the product end goal when choosing the technology and architecture solutions. Otherwise you may get to the point where you cannot iteratively deliver the features required without redesigning part of your system.</li>
<li>Receiving feedback on the product and evolving the product needs to be seen as an expected part of the project delivery and planned for accordingly. If no further changes are made to the MVP, then it is just a product, not a minimum viable product!</li>
<li>If your system does not utilise deploy and release automation, or if you are not able to use consistent, available environments you may find that the cost of release is quite high. In this scenario, multiple iterative releases (as required for an MVP) may result in high costs and overheads, reducing the value of smaller batch sizes.</li>
<li>If your product does not pass the business viability check, you should abandon the project. This means the effort spent on this MVP will not result in any business value. However, you may have saved yourself the effort of building and delivering the full solution before coming to the conclusion that this product is not useful.</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Overall there are many ways in which an MVP approach can be beneficial for you and your business, however it is not a magic bullet. I suggest you take each scenario on a case by case basis and find what works for your project.</p>
<p>&nbsp;</p>
<p>I hope that seeing your project objectives through the lens of the MVP approach will give you an alternative perspective and help you to find more ways of delivering quick wins for your project. Good luck!</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/achieve-quick-wins-minimum-viable-product/">Do you want to achieve quick wins? (Hint: Focus on Minimum Viable Product)</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>How we built a Live DevOps Innovation Platform</title>
		<link>https://resources.sandhata.com/how-we-built-a-live-devops-innovation-platform/</link>
		<pubDate>Wed, 10 May 2017 11:45:10 +0000</pubDate>
		<dc:creator><![CDATA[Bronwyn Davies]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Innovation Platform]]></category>
		<category><![CDATA[KPIs]]></category>
		<category><![CDATA[Service Virtualization]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">http://resources.sandhata.com/?p=1870</guid>
		<description><![CDATA[<p>We recently announced the arrival of our Live DevOps Innovation Platform built in-house here at Sandhata. I wanted to share some of the tools we have used for it so far, as well as my personal experiences on this platform, as it has been very interesting and a big learning experience for me. The DevOps Innovation Platform project was [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/how-we-built-a-live-devops-innovation-platform/">How we built a Live DevOps Innovation Platform</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>We <a href="http://resources.sandhata.com/our-software-and-services/devops-platform" target="_blank" rel="noopener">recently announced the arrival</a> of our <strong>Live DevOps Innovation Platform</strong> built in-house here at Sandhata. I wanted to share some of the tools we have used for it so far, as well as my personal experiences on this platform, as it has been very interesting and a big learning experience for me.<br />
<span id="more-1870"></span></p>
<p>The DevOps Innovation Platform project was launched in August 2016. We began by building a very simple application, called <strong>Sandhata Bank</strong>, using public APIs available from the <strong><a href="https://www.openbankproject.com/" target="_blank" rel="noopener">Open Bank Project</a>.</strong> This meant we didn&#8217;t have to build an entire banking back-end.</p>
<h2>The foundations</h2>
<p>The first few weeks were spent designing and building the environment, configuring our <strong><a href="https://www.docker.com/" target="_blank" rel="noopener">Docker</a></strong> setup, and building a Continuous Delivery pipeline framework using <strong><a href="https://jenkins.io/" target="_blank" rel="noopener">Jenkins</a></strong>.</p>
<p>From there we have continued to integrate open source tools, including:</p>
<ul>
<li><strong><a href="https://gradle.org/" target="_blank" rel="noopener">Gradle</a></strong> for build automation</li>
<li><strong><a href="https://www.sonarqube.org/" target="_blank" rel="noopener">SonarQube</a></strong> for quality control</li>
<li><strong><a href="http://junit.org/junit4/" target="_blank" rel="noopener">Junit</a></strong> for unit testing</li>
<li><strong><a href="https://karma-runner.github.io/1.0/index.html" target="_blank" rel="noopener">Karma</a></strong> and <strong><a href="http://www.seleniumhq.org" target="_blank" rel="noopener">Selenium</a></strong> for web testing</li>
<li><strong><a href="http://www.eclipse.org/birt/" target="_blank" rel="noopener">BIRT</a></strong> for transactional dashboards</li>
<li><strong><a href="http://www.zabbix.com/" target="_blank" rel="noopener">Zabbix</a></strong> for monitoring</li>
</ul>
<p>&nbsp;</p>
<h2>Enterprise products</h2>
<p>Once we had a good working open source model, we started to incorporate enterprise-licensed products. We have analysed the market and sought to include the products we believe are industry-leading in various areas.</p>
<p>So far, in addition to the many open source products, the Platform features:</p>
<ul>
<li><strong><a href="https://aws.amazon.com/" target="_blank" rel="noopener">AWS</a></strong> as a cloud provider</li>
<li><strong><a href="https://digital.ai/deploy/" target="_blank" rel="noopener">digital.ai Deploy</a></strong> for deployment automation (formerly XebiaLabs XL Deploy)</li>
<li><strong><a href="https://digital.ai/release/" target="_blank" rel="noopener">digital.ai Release</a></strong> for release management (formerly XebiaLabs XL Release)</li>
<li><strong><a href="http://www-03.ibm.com/software/products/en/rtw/" target="_blank" rel="noopener">IBM Rational Test Workbench</a></strong> for Message Based Test Automation &amp; Service Virtualisation</li>
<li><strong><a href="https://docops.ca.com/devtest-solutions/10-1/en" target="_blank" rel="noopener">CA DevTest</a></strong> for Test Automation &amp; Service Virtualisation</li>
<li><strong><a href="http://www.tibco.com/products/tibco-businessworks" target="_blank" rel="noopener">TIBCO BWCE</a></strong> for micro services</li>
<li><strong><a href="https://www.ca.com/gb/products/ca-test-data-manager.html" target="_blank" rel="noopener">CA Test Data Manager</a></strong> for test data management</li>
<li><strong><a href="https://www.ca.com/us/products/ca-agile-requirements-designer.html" target="_blank" rel="noopener">CA Agile Requirements Designer</a></strong> for Requirements Modelling &amp; Test Case Design</li>
<li><strong><a href="https://www.ca.com/gb/products/ca-api-gateway.html" target="_blank" rel="noopener">CA API Gateway</a></strong> or API Management</li>
<li><strong><a href="http://spotfire.tibco.com/" target="_blank" rel="noopener">TIBCO Spotfire</a></strong> for KPIs and business intelligence</li>
</ul>
<p>&nbsp;</p>
<h2>DevOps principles</h2>
<p>From the very beginning, we have followed DevOps principles of continuous improvement and collaboration in working as a team. We started out using <strong><a href="https://www.phacility.com/phabricator/" target="_blank" rel="noopener">Phabricator</a></strong> as our task management system, while following Agile practices (sprints, scrum meetings etc). We have since progressed to using <strong><a href="https://www.ca.com/gb/products/ca-agile-central.html" target="_blank" rel="noopener">Agile Central</a></strong> as our task management system as it offers more mature features.</p>
<blockquote><p>This open way of working has allowed us to evaluate more than 30 different tools and has given each team member responsibility for their area of focus and the tools available.</p></blockquote>
<p>The DevOps Innovation Platform project has been a great opportunity for every member of the DevOps Platform team to work with many new technologies and gain a real breadth of skills. Each person has been involved in researching the wide spectrum of new technologies and building POCs to gain deeper understanding of the products, whilst helping to ultimately decide which tools should be included.</p>
<h2>Continuous customer feedback</h2>
<p>I personally have found this process incredibly interesting, and a great opportunity to get my hands on some of the hottest tools around. With each tool and process addition to the Platform, we have demonstrated these to our clients, and their feedback has kept us eager to keep going.</p>
<p>Our conversations with clients and partners have been so enriched by this Platform, as it allows us to easily demonstrate our understanding and experience of each focus area, that it is a springboard for meaningful discussion.</p>
<h2>Plug-and-playground</h2>
<p>The other brilliant aspect of this Platform is that it is a working, complete real-life application ecosystem. So when new tools come along, we already have the perfect playground to download, install, and play around with the tool to get up close and personal with it. As we already have hands-on experience with the tools, we can provide better, completely personalised advice to clients based on our breadth of experience with the different toolsets available.</p>
<blockquote><p>We are working on enhancing the Platform as I write, and adding new features and tools all the time.</p></blockquote>
<p>I look forward to keeping you up to date with our new additions as they come through!</p>
<p>&nbsp;</p>
<h3>Want to know more?</h3>
<p>Take a look at the <a href="http://resources.sandhata.com/our-software-and-services/devops-platform/" target="_blank" rel="noopener">Platform page</a> or contact us on <strong>+44 20 7680 7105</strong> for a no-obligation product review.</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/how-we-built-a-live-devops-innovation-platform/">How we built a Live DevOps Innovation Platform</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>From College to Career</title>
		<link>https://resources.sandhata.com/from-college-to-career/</link>
		<pubDate>Wed, 12 Apr 2017 05:00:51 +0000</pubDate>
		<dc:creator><![CDATA[Jaishree V]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">http://resources.sandhata.com/?p=1824</guid>
		<description><![CDATA[<p>Choices shape and define us. Past choices mould us into who we are today and the ones we make today shape who we become tomorrow. In this blog post, I will share a brief story of how my career choices have helped shape me into who I am today. After all, aren’t we are all [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/from-college-to-career/">From College to Career</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Choices shape and define us. Past choices mould us into who we are today and the ones we make today shape who we become tomorrow. In this blog post, I will share a brief story of how my career choices have helped shape me into who I am today. After all, aren’t we are all ultimately responsible for our own actions?<br />
<span id="more-1824"></span></p>
<h4>A passion for technology</h4>
<p>Technology has always fascinated me. There is something almost tantalisingly powerful about it that draws me in. So, entering into IT was a choice I made purely out of passion – unlike countless others. I’ve was pretty sure about this choice even in high school and I have not regretted it once.</p>
<h4>From high school to college</h4>
<p>As I’ve always been pretty strong-minded about my goals, choosing a focus in high school was a piece of cake. Two years of dedicated hard work later, I secured the score I wanted and then decided to continue my learning journey. I started pursuing B-Tech IT at Panimalar Institute of Technology.<br />
For me, as for most people, the college years were the best times of my life. College taught me all I needed to know to start off a career in the realm of IT, equipping me with sound knowledge in UNIX, Java, JMS, and admin support. I trained to become a software test engineer working on various stages of testing across the project lifecycle.</p>
<h4>Choosing a specialism</h4>
<p>If there was one thing I was sure about, it was this: The world outside of college – especially the world of software engineering – is peppered with competition. I knew I needed a little something “extra” to create a place for myself in the job market. I spent a reasonable amount of time researching and exploring the options available to me, and eventually narrowed it down to the field of Analytics. Hence, I went for a post-graduation in Business Analytics at SSN College of Engineering. That’s where I was introduced to the world of Big Data Science; the art of interpreting numbers and coming up with innovative solutions to various data related issues. The tools I came to learn included R, SAS, MYSQL, and Excel.</p>
<h4>Life and career at Sandhata</h4>
<p>I’d done my graduation and post-graduation, both with honours. Now I was equipped to step out into the world.</p>
<p>Being selected to work for Sandhata Technologies has been a bonus in more ways than one. It has given me the perfect head start in my career. Also, as a Sandhata consultant, I’m exposed to an array of responsibilities and diverse experiences. Currently, my work is focussed on testing as a QA Engineer, helping to deliver projects within tight deadlines. I’m learning a wide range of new technologies, and I am already a Certified Associate Developer in RIT.</p>
<p>Life at Sandhata is a mix of wonderful things. There is so much to look forward to. The work culture here is amazing and I’m happy to say that I’m one of those few fortunate people who have managed to make great friends in their workplace. My colleagues are fun and my superiors are very friendly.</p>
<h4>Choices make the future</h4>
<p>I really must say that so far, the choices I’ve made in my life and career have always led me to where I want to be. From high school to workplace; I’m happy to see how far I have come. But still, my journey has just begun. There are many more cross-roads yet to come, and lots of choices to be made. Whatever our journey looks like, I’m sure we can all learn some valuable lessons along the way – and make the career choices that are the best for us in the end.</p>
<p><strong>Learn more</strong><br />
Want to know more about Sandhata careers, or discuss how we can support you through testing and project delivery? <a href="http://resources.sandhata.com/our-company/contact-and-office-information/">Contact us</a> to have a conversation with me or one of our other experts today!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/from-college-to-career/">From College to Career</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Testing from a developer&#8217;s perspective</title>
		<link>https://resources.sandhata.com/testing-from-a-developers-perspective/</link>
		<pubDate>Tue, 10 Nov 2015 15:20:45 +0000</pubDate>
		<dc:creator><![CDATA[Sailaja Jonnavithula]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">http://resources.sandhata.com/?p=1359</guid>
		<description><![CDATA[<p>Having worked in the development side of projects for so long, donning a tester’s hat for some projects at my current workplace was a new experience, nevertheless a useful one. It was almost like starting from scratch. I always had this idea that testing was largely a manual process. Yes, I knew there was automation [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/testing-from-a-developers-perspective/">Testing from a developer&#8217;s perspective</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Having worked in the development side of projects for so long, donning a tester’s hat for some projects at my current workplace was a new experience, nevertheless a useful one. It was almost like starting from scratch. I always had this idea that testing was largely a manual process. Yes, I knew there was automation testing and I was aware of tools such as HPQC, QTP and so on. But, having never used them before, I was not sure how they were leveraged to test the multitude of requirements. So, here go a few of my observations when performing a tester role.<br />
<span id="more-1359"></span></p>
<p>The first input for anyone involved at the ground level, be it a tester or a developer, is the functional specification. A developer goes through this functional specification and usually there will be a few rounds of brainstorming or discussion sessions to understand the requirements so that they can come up with a technical design. A tester goes through the functional specification and comes up with a test plan document detailing the level of coverage, when it will be tested, in scope and out of scope items, any assumptions or limitations, acceptance criteria, and so on. Just like a technical design is input to the actual development, a test plan is input to the actual test scripting that happens later on. So, at this level, it’s pretty much a similar path for both a developer and a tester.</p>
<p>A developer develops the solution based on the design document. The tester, however, needs additional inputs before they can develop the test scripts. This is the design document. The design document is an important additional input to a tester. It helps the tester to understand the solution intricacies and reaffirm or revisit the touch points for the testing tool to the solution. It also helps in scripting new scenarios, thus improving test coverage and solution reliability.</p>
<p>From a developer’s point of view, any additional checks may not feel very important. When a developer unit tests a solution, to be honest it goes with a few assumptions about the code they developed, such as a mandatory field will always have a value; database connections will always be available. A tester, on the other hand, has to consider the solution from a what-if perspective. What if the field does not come at all? What if the database connections are not available? These questions, when posed to a developer, help to build a robust solution that handles all possible scenarios gracefully.</p>
<p>This what-if approach is one important skill I learnt when working as a tester. When back into development, it helped me to build a solution that handled scenarios gracefully. Even for a single field addition, I now ask the questions: are there any scenarios where this field may not be part of the input at all? how is it expected to be handled? is this scenario handled in the source system or is it handed in the target system? As a result, there is no scope for a missed valid or invalid scenario.</p>
<p>The other area of improvement I noticed after my stint as a tester was the way I looked at my unit testing scenarios. When unit testing, we tend to create one test case and modify the inputs to test the scenarios. Or we create multiple unit test cases. With the one test case approach, I would not have the input data for all the conditions that I have covered in unit testing. With the multiple unit test cases, in few cases it leads to redundancy. In the automation testing tool that I have used, we had a possibility of data driving the tests. So you always have a record of the data you have used in testing. I have taken this point into my unit testing and I now try to data drive my unit tests wherever relevant so that I have a record of the data I have used for testing. Before I start my unit testing cases, I pause to think. Is there a possibility of data driving my unit tests? Or would it be a better approach to have individual cases?</p>
<p>Another area that I felt was largely ignored but extremely useful was discussions between a developer and tester. It is only when the tester raises a defect that the tester and developer actually interact to resolve the issues. Some of the scenarios scripted by the tester could be invalid and some of the defects raised by the tester may be incorrect. So, there is a lot of friction between a developer and a tester when testing commences. But both these roles are important and both work towards a common goal. I have personally seen a lot of benefit when a tester is involved in discussions with the developer and involving testers in discussions as a developer.</p>
<p>My perception of testing has changed a lot after this experience. It helped me to understand how a functionally competent tester can help to improve the overall product quality. This blog has been from a middleware interface automation testing perspective. Hence, some of the documents or terminologies used might be different to a general application testing and development perspective and management levels.</p>
<p><strong>Want to learn more?</strong> Download our technical paper <a href="https://resources.sandhata.com/resources/technical-white-papers/test-tools-and-sap/"><em><strong>Test Tools and SAP</strong></em></a>.</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/testing-from-a-developers-perspective/">Testing from a developer&#8217;s perspective</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>BIRT for Test Reports</title>
		<link>https://resources.sandhata.com/birt-for-test-reports/</link>
		<pubDate>Tue, 03 Nov 2015 15:42:46 +0000</pubDate>
		<dc:creator><![CDATA[Sailaja Kotamraju]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">http://resources.sandhata.com/?p=1356</guid>
		<description><![CDATA[<p>Results reporting is one of the key stages in the testing phase where the interested project participants or the stakeholders are presented with information on the test progress. Although many of the test automation tools have inbuilt reporting capability, the information may either be too low-level or technical, or it may not be fully relevant [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/birt-for-test-reports/">BIRT for Test Reports</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Results reporting is one of the key stages in the testing phase where the interested project participants or the stakeholders are presented with information on the test progress. Although many of the test automation tools have inbuilt reporting capability, the information may either be too low-level or technical, or it may not be fully relevant for management. As part of test process improvement, I’m working on a requirement to present the test results in an efficient way, so the management can visualise the current status of testing or the overall status for a test cycle, and make decisions accordingly.<br />
<span id="more-1356"></span></p>
<p>Although many custom tools in the market will integrate with most of the test automation tools to create customised reports, an open-source tool is an obvious choice to begin with. For our requirement, a business intelligence and reporting tool (BIRT) is the best fit as it is an open-source Eclipse product, it doesn’t need advanced web application development skills and anyone with HTML, JavaScript or Java knowledge can build the reports and deploy them to an application server to be able to access the data via a browser. With BIRT, you can create a variety of reports such as lists (with relevant data grouped), documents, charts and so on.</p>
<p>BIRT architecture has two main components – report designer and a runtime component. The latter facilitates the design’s deployment on to an application server such as Apache Tomcat. An additional chart engine component exists for integrating charts into the application (I haven’t still explored this feature yet). For proof of concept, I have downloaded Eclipse Mars 4.5 that comes with BIRT designer. If you have already installed Eclipse, you can download the BIRT plugin. Depending on your data visualization needs, you can either design a report with the sample templates or start with a blank page and add items from the palette in the designer via drag and drop. Also, you can create a library for reusable custom templates.</p>
<p>In a nutshell, there are three main design steps. First, create a data source for report. I have to connect to an Oracle database (which is where our automation test tool publishes the results) although BIRT supports multiple data sources such as web service, an xml file, a flat file or even another application that can provide you with relevant information. Second, create a data set such as a query to get the required information from the data source. Third, create the page design to present the information in an efficient way. You can also create HTML links to navigate between multiple reports or add filter/sort criteria on the data to be viewed. I have created a web page that will present a form to the user (containing list boxes and a calendar widget to select the dates) to help them to select certain criteria based on what information will be gathered or grouped in the background. The best part of the tool is the support for JavaScript /Java. You can customise the page, for example by adding event handlers on the user operations or add any validations or calculations to be performed, before presenting it. Eclipse enables you to preview the report using an HTML browser.</p>
<p>There are different packages available to download BIRT runtime. I chose to download the BIRT sample viewer WAR file from the BIRT site and deploy it on the Tomcat server. The sample viewer adds web-based viewing capability for BIRT designs, which means it takes care of basic functionality such as a table of contents, pagination, exporting the results to PDF and so on. If you wish to enhance the existing viewer, you can download a suitable runtime package. Since I’m working on a very basic requirement, I have added sample viewer to my Tomcat server and copied my report design to the Tomcat’s webapps directory. Once the Tomcat server is restarted, the report can be accessed via a browser. These are a few initial basic steps, and many features of the product can be leveraged based on the requirement.</p>
<p>BIRT reporting can be very useful, especially in continuous integration scenarios such as when multiple regression test packs have to be run before releasing the software to next level. It enables the management team to make informed decisions quickly based on the current test status. However, BIRT is not just limited to reporting, it can also be utilised across various SDLC phases where data visualisation is vital.</p>
<p>The post <a rel="nofollow" href="https://resources.sandhata.com/birt-for-test-reports/">BIRT for Test Reports</a> appeared first on <a rel="nofollow" href="https://resources.sandhata.com">Sandhata</a>.</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
