<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: The Unmeshed Team</title>
    <description>The latest articles on DEV Community by The Unmeshed Team (@unmeshed).</description>
    <link>https://dev.to/unmeshed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3953781%2F5af20b0f-7da7-4490-9183-a2d28dab3978.png</url>
      <title>DEV Community: The Unmeshed Team</title>
      <link>https://dev.to/unmeshed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/unmeshed"/>
    <language>en</language>
    <item>
      <title>How We Reduced Our LLM Token Bill by 80% Without Downgrading the Model</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Tue, 11 Aug 2026 06:27:33 +0000</pubDate>
      <link>https://dev.to/unmeshed/how-we-reduced-our-llm-token-bill-by-80-without-downgrading-the-model-2pmi</link>
      <guid>https://dev.to/unmeshed/how-we-reduced-our-llm-token-bill-by-80-without-downgrading-the-model-2pmi</guid>
      <description>&lt;h2&gt;
  
  
  Let’s make it Agentic!
&lt;/h2&gt;

&lt;p&gt;The push in the market is to use agentic flows. Agentic is when you let a model decide how to process a request or a flow and expect its abilities to parse and understand context to result in the best possible outcome for the use case. The idea is that as models mature and become more “intelligent” the outcomes become more high quality and beats a human coded fixed algorithm.&lt;/p&gt;

&lt;p&gt;With this in mind, oftentimes you’d see a use case pushed into production which relies on model calls completely.&lt;/p&gt;

&lt;p&gt;For example, an agent may execute a use case by parsing input, validating data, classifying the request, checking policy, routing it to the right person, and drafting a response, all by calling a model.&lt;/p&gt;

&lt;p&gt;It's often quite fast to build this, with the many agentic frameworks out there today and the demo is usually great and impressive to the management.&lt;/p&gt;

&lt;p&gt;Launching this in production in a high volume use case will bring a shock though - when the bill arrives from the model providers. Token costs are increasing rather than decreasing as models evolve. Now is that use case adding sufficient value to the cost of running it?&lt;/p&gt;

&lt;p&gt;What about questions such as consistency, latency, security and &lt;a href="https://unmeshed.io/blog/why-enterprises-are-moving-past-vibe-coding-to-governed-ai" rel="noopener noreferrer"&gt;governance&lt;/a&gt;? And an even bigger question, do you really know why a decision was made?&lt;/p&gt;

&lt;p&gt;I think there is a trend shift happening now in the market. The shift is to double check token spend to value creation. This shift is primarily among those who have already shipped a reasonable amount of use cases leveraging AI. The camp that is still working to deploy some use cases is not bothered by the spend yet as it hasn’t really hit them yet. But it's almost a certainty that once your budget starts to get eaten up, the question will come.&lt;/p&gt;

&lt;h2&gt;
  
  
  Going to Production with AI
&lt;/h2&gt;

&lt;p&gt;The instinct to use AI for everything was not wrong. But does it always make sense? Teams and people are starting to ask which of the steps actually needs “intelligence” and which ones just need some rules or logic? This leads to answers for not just token spend, but the latency and consistency as well. Consistency means you know the reasons why the system is doing something.&lt;/p&gt;

&lt;p&gt;But if we are not using AI, are we not losing out? Isn’t that what everyone says now? Get onboard or be left behind to be eaten by more modern competing companies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnjtt57yzofffelijj66n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnjtt57yzofffelijj66n.png" alt="The race to production is pushing many teams toward AI-first architectures, but speed alone does not guarantee efficiency or sustainability." width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The solution is to maximize the use of AI, but in a way that it yields maximum value and not just blindly at everything. I think an example is overdue for explaining this.&lt;/p&gt;

&lt;p&gt;Expense approvals - This is quite common and every company needs it and typically it's done by a couple methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A human manually reviews and approves each expense based on some published policy&lt;/li&gt;
&lt;li&gt;Some rules in a HR system that can automatically approve some expenses and route others to approvers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s say the finance team of a company wants to be more dynamic, rapidly respond to changing trends and create a system that can benefit the company to maximize employee productivity - by letting them manage expenses that are not bound by rules set in stone!&lt;/p&gt;

&lt;p&gt;An engineering team asked to build this could simply do this - ask the finance team to write the policy in a Google Doc or something - which can then be published to the internal portal as the official policy and then say build an AI agent that reads this policy and approves every request based on the policy. Now the finance team can update the policy every now and then, and without any developer in the loop, the policy can reflect on each expense approval request - Et Voila! Cool right?&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;User initiate a chat with an expense agent&lt;/li&gt;
&lt;li&gt;Exchange greetings (of course we humans always do that, agent or not!)&lt;/li&gt;
&lt;li&gt;Upload a receipt, explain the expense&lt;/li&gt;
&lt;li&gt;Agent parses the receipt, validates the amounts and dates&lt;/li&gt;
&lt;li&gt;Evaluates the entire expense policy against the request&lt;/li&gt;
&lt;li&gt;Decides on the request, informs the user&lt;/li&gt;
&lt;li&gt;If approved, make a request to the HR system to note the required expense reimbursement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a pretty cool agentic flow if you were to build it and I think the finance team and the entire company is probably going to be thrilled to use it. First, policies will start being practically applied (assuming the AI is intelligent) and the finance team has the flexibility to change it every Monday if they want to. Win win - And the CTO can present to the board on how they leveraged the intelligence of the models available today to add value to the business.&lt;/p&gt;

&lt;p&gt;The big savings here is the manual approval times that the finance team would have to spend on without something like this. Or even more is the developer time required to keep changing policies as they change and lead time for doing so while expenses may not be processed as per the latest update.&lt;/p&gt;

&lt;p&gt;So is this value worth the new &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;token bills&lt;/a&gt; that may now start coming from the model providers?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkbt0caeupmzqm6m1voit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkbt0caeupmzqm6m1voit.png" alt="Illustration showing a massive operational bill crashing into an office, representing rising AI and token costs in production systems." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Optimizing the AI
&lt;/h2&gt;

&lt;p&gt;What could we do differently here? The models are worthy of use for sure. It's proven beyond doubt that it can be very effective in a lot of scenarios. A change up for the example above could be this:&lt;/p&gt;

&lt;h3&gt;
  
  
  On every policy update, steps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Read the latest policy&lt;/li&gt;
&lt;li&gt;Create a set of rules for basic cases extracted from the policy&lt;/li&gt;
&lt;li&gt;Create test scenarios for the human to verify&lt;/li&gt;
&lt;li&gt;Send the test scenarios and ruleset for finance team to approve&lt;/li&gt;
&lt;li&gt;Deploy rules into production&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  On every expense request, steps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Present a data entry form for user

&lt;ul&gt;
&lt;li&gt;If user chooses to enter via an unstructured form, then run the model to convert it into structured&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Run the rules deployed

&lt;ul&gt;
&lt;li&gt;if its matching, approve or deny as per rules&lt;/li&gt;
&lt;li&gt;If none matches&lt;/li&gt;
&lt;li&gt;Run the model to decide approval&lt;/li&gt;
&lt;li&gt;Or route to human for the lower volume&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Inform the user and invoke the HR system for reimbursement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still using that model! But only where it matters and you can pretty much cut down the token costs by 80-90%. The more people who use structured input, there is not even a need for the model to parse the inputs. We still end up the model’s intelligence but in a more consistent way since it created static, deterministic rules. The large volume of requests will be now automatically approved by the updated rulesets for each policy update by the finance team. Same flexibility as the earlier flow, but with a lot lower token spend. And we get to use AI to do the one thing it's designed to do great - code things out! A developer in the loop can also review the code and ensure its consistent with the engineering standards just like any other code review. Win win win across the board.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ovxilsnzcxn5gregz44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ovxilsnzcxn5gregz44.png" alt="The race to production is pushing many teams toward AI-first architectures, but speed alone does not guarantee efficiency or sustainability." width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Judgment vs. logic
&lt;/h2&gt;

&lt;p&gt;It’s quite easy to decide when you need a model and when you need a simple logical interpretation. In every workflow step decide on this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this step require understanding context, generating language, or making a nuanced decision, or does it just need to follow a rule?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a useful question because it removes some of the glamour from the architecture. Most steps, when you ask it honestly, are less mysterious than they first looked.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Steps that need judgment&lt;/th&gt;
&lt;th&gt;Steps that need logic&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classifying ambiguous or unstructured input&lt;/td&gt;
&lt;td&gt;Routing based on a known field value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summarizing a document or conversation&lt;/td&gt;
&lt;td&gt;Validating a number against a threshold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generating a policy, workflow, or config&lt;/td&gt;
&lt;td&gt;Running a &lt;a href="https://unmeshed.io/product/whats-new/decision-engine" rel="noopener noreferrer"&gt;decision table&lt;/a&gt; at scale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explaining a rejection in plain English&lt;/td&gt;
&lt;td&gt;Parsing a structured form submission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helping a non-technical user set up a rule&lt;/td&gt;
&lt;td&gt;Executing that rule 50,000 times a day&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  About our platform - &lt;a href="https://unmeshed.io/" rel="noopener noreferrer"&gt;Unmeshed&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;So since you are reading this - I’d love to share a bit about our platform - Unmeshed. Unmeshed helps teams build AI-powered workflows that combine model calls, deterministic rules, API integrations, &lt;a href="https://unmeshed.io/product/whats-new/human-in-the-loop" rel="noopener noreferrer"&gt;human approvals&lt;/a&gt;, and observability in one place.&lt;/p&gt;

&lt;p&gt;In Unmeshed, engineering teams can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model API calls, rules, decision tables, human approvals, and &lt;a href="https://unmeshed.io/products/agentic" rel="noopener noreferrer"&gt;AI steps&lt;/a&gt; in one workflow&lt;/li&gt;
&lt;li&gt;See which steps call models and why&lt;/li&gt;
&lt;li&gt;Attribute cost to specific workflows and outcomes&lt;/li&gt;
&lt;li&gt;Put budgets, scopes, and tool allow-lists around agentic execution&lt;/li&gt;
&lt;li&gt;Keep humans in the loop for high-risk or ambiguous decisions&lt;/li&gt;
&lt;li&gt;Move repeatable decisions from model calls into deterministic logic over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The decision table is a rules engine and you can create complex business rules using AI or manually. This is where you could use models to create your rules, have humans validate them and then run them for effectively next to nothing compared to individual model calls for every use case execution.&lt;/p&gt;

&lt;p&gt;If your team is adding AI into business processes and starting to ask where the cost, latency, and outcomes are coming from, Unmeshed gives you one place to design, run, observe, and optimize the workflow.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  Still routing everything through a model?
&lt;/h4&gt;
&lt;h2&gt;
  
  
  Cut token spend without cutting capability
&lt;/h2&gt;

&lt;p&gt;Unmeshed combines AI steps, &lt;a href="https://unmeshed.io/product/whats-new/decision-engine" rel="noopener noreferrer"&gt;decision tables&lt;/a&gt;, and human approval in one workflow, so repeatable decisions run as rules instead of expensive model calls.&lt;br&gt;
&lt;a href="https://unmeshed.io/signup?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=ai_token_management&amp;amp;utm_content=primary_cta" rel="noopener noreferrer"&gt;Try Unmeshed&lt;/a&gt; or &lt;a href="https://unmeshed.io/contact?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=ai_token_management&amp;amp;utm_content=secondary_cta" rel="noopener noreferrer"&gt;Talk to us&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>backend</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building a Smart Drip Email Funnel That Knows When to Stop</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 10 Aug 2026 06:31:36 +0000</pubDate>
      <link>https://dev.to/unmeshed/building-a-smart-drip-email-funnel-that-knows-when-to-stop-h8o</link>
      <guid>https://dev.to/unmeshed/building-a-smart-drip-email-funnel-that-knows-when-to-stop-h8o</guid>
      <description>&lt;p&gt;Shipping a SaaS is the easy part now. You put up a landing page, open a free trial, and signups start showing up.&lt;/p&gt;

&lt;p&gt;What happens after the signup is where things get messy.&lt;/p&gt;

&lt;p&gt;You've got people sitting inside a 14-day trial. You don't know who's using the product, who's silently giving up on it, or who paid yesterday. You meant to email them on Day 3. Then Day 7. You forgot. Or worse: you remembered, and sent a "trial ends tomorrow" reminder to someone who upgraded two days ago.&lt;/p&gt;

&lt;p&gt;Small things, but they add up. A funnel that does this badly is barely better than no funnel at all.&lt;/p&gt;

&lt;p&gt;So I built one in Unmeshed.&lt;/p&gt;

&lt;p&gt;Five emails over fourteen days, on Day 0, 3, 7, 11, and 13. Before every send after Day 0, the workflow hits your API and checks if the user has upgraded. If they have, it exits and logs the conversion. No "last chance" emails to paying customers.&lt;/p&gt;

&lt;p&gt;Emails go out through Gmail. Sends and conversions get appended to a Google Sheet, which ends up being a perfectly fine lightweight CRM once you have a few rows in it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foj25tfldk4fulduyt48e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foj25tfldk4fulduyt48e.png" alt="SaaS trial onboarding workflow showing automated Day 3 upgrade tracking using JavaScript, Gmail, Google Sheets, Wait, HTTP Get, and Switch steps. The workflow branches based on subscription status before sending a follow-up email." width="254" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to try this exact flow? &lt;a href="https://unmeshed.io/templates/saas-trial-onboarding" rel="noopener noreferrer"&gt;Open the SaaS Trial Onboarding template&lt;/a&gt; and adapt it to your trial funnel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Most trial funnels fail the same two ways
&lt;/h2&gt;

&lt;p&gt;Either nothing goes out, because the founder is busy shipping and Day 3 quietly turns into Day 9. Or a cron job blasts the full sequence regardless of who's converted, churned, or moved on.&lt;/p&gt;

&lt;p&gt;Both leak revenue, and both feel sloppy to the user on the receiving end.&lt;/p&gt;

&lt;p&gt;A funnel that actually works has to do three things. Reach people at the right moments. Stop the moment someone upgrades. And leave a trail so you can look at what happened later.&lt;/p&gt;

&lt;p&gt;The third one is what most setups skip, and it's the reason most founders have no idea where their funnel actually leaks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Walking through it
&lt;/h2&gt;

&lt;p&gt;I'll use a fake SaaS called &lt;strong&gt;Stagepad&lt;/strong&gt; for the examples. Pretend it's a hosted staging environment tool for solo devs. The shape works for anything on a 14-day trial.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Trigger and trial window
&lt;/h3&gt;

&lt;p&gt;The workflow fires when someone signs up. It gets two fields:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="nl"&gt;"userEmail"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"alex@example.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="nl"&gt;"userName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Alex"&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first step is a tiny JavaScript step that calculates the trial end date (today plus 14 days) and formats it into something readable, like &lt;em&gt;Thursday, June 12th&lt;/em&gt;. Every email in the funnel references this date, so the user always sees the same concrete deadline instead of a vague "your trial is ending soon."&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Day 0: Welcome
&lt;/h3&gt;

&lt;p&gt;The welcome email goes out right away. It covers what they get on the trial, what to expect over the next two weeks, and the trial end date.&lt;/p&gt;

&lt;p&gt;Two things happen in the background after the send: the timestamp gets captured, and a row gets appended to the tracker sheet with the user's email, name, trial end date, Day 0 send time, and &lt;code&gt;in_progress&lt;/code&gt; as the status. From here on, the sheet has one row per trial user, and the row keeps getting updated as the funnel moves forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Wait, then check before sending
&lt;/h3&gt;

&lt;p&gt;Here's the part that makes it honest.&lt;/p&gt;

&lt;p&gt;Every send after Day 0 follows the same three steps. Wait until the right day. Hit the upgrade-status API. Branch on the result.&lt;/p&gt;

&lt;p&gt;The wait is a native Unmeshed &lt;code&gt;WAIT&lt;/code&gt; step. No cron, no external scheduler, nothing fragile sitting on your laptop. The workflow pauses for 72 hours, then 96, then 96 again, then 48.&lt;/p&gt;

&lt;p&gt;The upgrade check is a plain GET to your own API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;
GET https://api.stagepad.com/v1/users/upgrade-status?email=alex@example.com

Authorization: Bearer ...
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your API returns &lt;code&gt;{ "subscribed": true }&lt;/code&gt; or &lt;code&gt;{ "subscribed": false }&lt;/code&gt;. A &lt;code&gt;SWITCH&lt;/code&gt; step reads it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subscribed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;

    &lt;span class="nx"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;check_upgrade_day3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;

    &lt;span class="nx"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;check_upgrade_day3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;subscribed&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;subscribed&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;subscribed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;not_subscribed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;};&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If they subscribed, the workflow logs &lt;code&gt;converted_before_day3&lt;/code&gt; with a timestamp and exits. If not, the email goes out and the send gets logged.&lt;/p&gt;

&lt;p&gt;That gate runs again before Day 7, Day 11, and Day 13. Four chances to catch a conversion before sending the wrong email.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The five emails
&lt;/h3&gt;

&lt;p&gt;Quick summary of what each one is doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Day 0, Welcome.&lt;/strong&gt; Trial access, what to expect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Day 3, Value tip.&lt;/strong&gt; A specific action that gets them a real result from the product. Hints at what paid unlocks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Day 7, Mid-trial highlight.&lt;/strong&gt; One strong paid feature and the problem it solves.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Day 11, Soft nudge.&lt;/strong&gt; Three days left, what they keep on the paid plan. No urgency theatrics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Day 13, Last chance.&lt;/strong&gt; Trial ends tomorrow. Honest framing: if the product has been useful, here's the upgrade link; if not, no hard feelings.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every email references the trial end date from Step 1, so the deadline stays specific.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The tracker sheet
&lt;/h3&gt;

&lt;p&gt;Every send appends a row. Conversions append a row too, with an &lt;code&gt;Upgraded At&lt;/code&gt; timestamp and an exit reason like &lt;code&gt;converted_before_day7&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;After a few weeks the sheet starts being useful on its own. You can see who's at what stage, when emails went out, where conversions tend to land (Day 3? Day 11? After Day 13?), and which users went completely silent.&lt;/p&gt;

&lt;p&gt;No Mixpanel. No HubSpot. A sheet you can open.&lt;/p&gt;

&lt;h2&gt;
  
  
  One more thing: setup is a workflow too
&lt;/h2&gt;

&lt;p&gt;The tracker sheet itself gets created by a separate one-time workflow.&lt;/p&gt;

&lt;p&gt;You run &lt;code&gt;create-trial-tracker-sheet&lt;/code&gt; once. It creates a sheet titled &lt;em&gt;SaaS Trial Tracker&lt;/em&gt;, writes the header row across twelve columns (Email, Name, Trial End Date, the five send timestamps, Upgraded, Upgraded At, Exit Reason, Workflow Run ID), and returns the spreadsheet ID and URL.&lt;/p&gt;

&lt;p&gt;Paste the ID into the main funnel workflow as &lt;code&gt;variables.tracker_sheet_id&lt;/code&gt; and you're done. Setup isn't a README full of clicks, it's a workflow you run once.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this replaces
&lt;/h2&gt;

&lt;p&gt;For a solo dev or a small team, this usually takes the place of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A calendar reminder to email trial users that you'll forget&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Mailchimp or Customer.io account you started configuring six months ago and never finished&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;code&gt;setTimeout&lt;/code&gt;-based scheduler in your backend that breaks every time you deploy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nothing, which is the most common option and the most expensive one&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What separates this from a generic drip tool is the upgrade check. Most email tools can send on a schedule. Stopping cleanly when someone converts usually means webhooks, audience syncing, and glue code you'll have to maintain. Here it's one HTTP call and one switch per email.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;A trial funnel sounds small until you start writing one.&lt;/p&gt;

&lt;p&gt;Five emails over fourteen days isn't much code. But once you add "stop if they upgrade," "log every send," "remember each user's trial end date," and "survive me closing the laptop for the weekend," it stops being a weekend project.&lt;/p&gt;

&lt;p&gt;Define it once as a workflow and Unmeshed handles the waiting, the branching, and the logging. You go back to building the product.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Turn your trial funnel into a real workflow
&lt;/h2&gt;

&lt;p&gt;If your trial emails are spread across a calendar, a half-configured email tool, and a few cron jobs you're afraid to touch, Unmeshed gives you one place to define and run the whole sequence, including the part where it stops at the right time.&lt;br&gt;
&lt;a href="https://unmeshed.io/signup?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=customer_feedback_automation&amp;amp;utm_content=primary_cta" rel="noopener noreferrer"&gt;Try Unmeshed&lt;/a&gt; or &lt;a href="https://unmeshed.io/contact?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=customer_feedback_automation&amp;amp;utm_content=secondary_cta" rel="noopener noreferrer"&gt;Talk to us&lt;/a&gt;&lt;br&gt;
Bring your own onboarding, trial, or lifecycle flow and we can help you shape it.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>automation</category>
      <category>saas</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Stop Redeploying Your Entire Backend Just to Fix a Single Validation Bug</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Fri, 07 Aug 2026 05:14:36 +0000</pubDate>
      <link>https://dev.to/unmeshed/stop-redeploying-your-entire-backend-just-to-fix-a-single-validation-bug-54mb</link>
      <guid>https://dev.to/unmeshed/stop-redeploying-your-entire-backend-just-to-fix-a-single-validation-bug-54mb</guid>
      <description>&lt;p&gt;Modern backend systems often become complex, and every code change or deployment can feel like a potential risk for downtime. With Unmeshed, your backend logic is managed as modular workflows, so you can build, monitor, and update business processes visually without touching your application code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix Issues Instantly Without Deployment Nightmares
&lt;/h2&gt;

&lt;p&gt;When something breaks in your backend, you do not need to redeploy or hotfix your codebase. Instead, you update or fix the specific step in your Unmeshed workflow. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimal downtime because fixes are instant and isolated&lt;/li&gt;
&lt;li&gt;No risky code rollbacks or emergency redeploys&lt;/li&gt;
&lt;li&gt;Business operations keep running smoothly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teams can monitor, debug, and patch workflows live, so you avoid the classic deployment nightmare.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy99p5vhn4n7pm5lojkew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy99p5vhn4n7pm5lojkew.png" alt="A modular order processing workflow where each business function is isolated into its own step, making updates and fixes possible without redeploying the entire application." width="586" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Example: Order Processing Workflow
&lt;/h2&gt;

&lt;p&gt;Let's say your order processing backend is a workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validate Order&lt;/li&gt;
&lt;li&gt;Process Payment&lt;/li&gt;
&lt;li&gt;Update Inventory&lt;/li&gt;
&lt;li&gt;Send Confirmation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If &lt;code&gt;Process Payment&lt;/code&gt; fails, you just fix or update that step in the workflow. No code change, no redeploy, and your business is back online in minutes.&lt;/p&gt;

&lt;p&gt;You can build similar workflows for user onboarding, data sync, or any business process, knowing that if a step breaks, you can fix it instantly without deployment drama.&lt;/p&gt;

&lt;h2&gt;
  
  
  Buggy Script vs Fixed Script: Why Validation Matters
&lt;/h2&gt;

&lt;p&gt;Let's look at a real-world example of how a missing validation can cause issues, and how Unmeshed makes it easy to fix bugs like this instantly, without redeployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Buggy Script
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvkhc1z70cxjb53bu5tv8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvkhc1z70cxjb53bu5tv8.png" alt="The original script accepts user input without validation, allowing invalid transaction amounts to enter downstream payment and inventory workflows." width="547" height="564"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// No validation (BUG)&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;txnAmount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txnAmount&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;orderId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;orderId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;success&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; No validation on &lt;code&gt;txnAmount&lt;/code&gt;. Invalid or negative values can slip through, causing silent failures and cascading errors downstream.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fixed Script
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvd87h1hi50afg0tdrge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvd87h1hi50afg0tdrge.png" alt="The corrected workflow step validates transaction amounts before execution, preventing invalid data from propagating through downstream services." width="557" height="564"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Validation rules: 1. Must be a number 2. Must be greater than 0&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;txnAmount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txnAmount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;orderId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;orderId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;// Validate txnAmount&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;isNaN&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;txnAmount&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;txnAmount&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Invalid txnAmount. It must be a positive number.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;success&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Now &lt;code&gt;txnAmount&lt;/code&gt; is validated before processing. Invalid data is caught immediately and rejected safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Unmeshed Advantage
&lt;/h2&gt;

&lt;p&gt;With traditional deployments, fixing the buggy script requires:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Changing the code&lt;/li&gt;
&lt;li&gt;Testing it&lt;/li&gt;
&lt;li&gt;Creating a PR&lt;/li&gt;
&lt;li&gt;Code review&lt;/li&gt;
&lt;li&gt;Merging to main&lt;/li&gt;
&lt;li&gt;Redeploying the entire service&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Risk:&lt;/strong&gt; If something goes wrong in the redeployment, your entire order processing system could go down.&lt;/p&gt;

&lt;p&gt;With Unmeshed, you simply:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Edit the step in your Unmeshed workflow&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Save&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; The fix is live immediately, the rest of your workflow is untouched, and order processing continues seamlessly.&lt;/p&gt;

&lt;p&gt;Unmeshed empowers engineering teams to move fast without fear of deployment downtime. Host your workflows with Unmeshed and experience stress-free releases.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>backend</category>
      <category>devops</category>
      <category>javascript</category>
    </item>
    <item>
      <title>API Composition with Unmeshed: One Endpoint, Many Systems</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Thu, 06 Aug 2026 06:06:53 +0000</pubDate>
      <link>https://dev.to/unmeshed/api-composition-with-unmeshed-one-endpoint-many-systems-1akp</link>
      <guid>https://dev.to/unmeshed/api-composition-with-unmeshed-one-endpoint-many-systems-1akp</guid>
      <description>&lt;p&gt;At some point in every backend's life, there's an endpoint that looks simple on the outside and is a disaster on the inside.&lt;/p&gt;

&lt;p&gt;One route. One URL. But behind it: four service calls, a retry loop for the billing API that goes down every other Tuesday, conditional logic depending on account status, parallel fetches to reduce latency, and a response-shaping step that glues it all into something the frontend can actually use.&lt;/p&gt;

&lt;p&gt;The handler started at 40 lines. Now it's 400. Two engineers have already said "we should really clean this up" and moved on to something more urgent. And every time product changes a rule, someone has to spelunk through the handler, figure out where the branching is, hope the tests catch any regressions, and push it out.&lt;/p&gt;

&lt;p&gt;This is not a code quality problem. It is an architectural one. The endpoint is doing orchestration work, but it is living in a place that was never designed to hold orchestration.&lt;/p&gt;

&lt;p&gt;Unmeshed is built specifically for this situation. The workflow becomes the execution layer behind the endpoint: explicit, visible, and designed to coordinate across systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The endpoint is not the hard part
&lt;/h2&gt;

&lt;p&gt;The route itself is trivial. Five lines. Register the path, parse the input, return the response.&lt;/p&gt;

&lt;p&gt;The hard part is what the route has to do:&lt;/p&gt;

&lt;p&gt;validate the incoming request against a contract&lt;br&gt;
call internal services that may or may not be available&lt;br&gt;
run independent lookups in parallel because sequential calls are too slow&lt;br&gt;
apply business rules that have changed three times this year&lt;br&gt;
retry dependencies that fail transiently&lt;br&gt;
fall back gracefully when one system is unavailable&lt;br&gt;
shape four different service responses into one coherent payload&lt;br&gt;
Once an endpoint is doing all of that, HTTP is almost incidental. The real work is coordination.&lt;/p&gt;

&lt;p&gt;That coordination is exactly what a workflow engine is designed to carry. The problem is that most teams never move it there. They just keep growing the handler until it becomes the most complex, least understood part of the backend.&lt;/p&gt;
&lt;h2&gt;
  
  
  What this actually looks like
&lt;/h2&gt;

&lt;p&gt;Here is a real-world example of the kind of endpoint that gets into trouble fast.&lt;/p&gt;

&lt;p&gt;A frontend dashboard, a partner integration, or an internal tool needs one call that returns a unified customer view. Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /customer/360?customerId=cus_123
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The caller does not want to make five requests and stitch the answer together. It wants one response: profile, subscription state, recent orders, open support tickets.&lt;/p&gt;

&lt;p&gt;Behind that single request, the backend has to coordinate validation, parallel service calls, retry logic, fallback behavior, business rules, and response shaping.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxsg45c8rb01acfofxzp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxsg45c8rb01acfofxzp0.png" alt="A side-by-side comparison showing API composition before and after orchestration. On the left, multiple backend services are connected through a traditional BFF (Backend for Frontend), resulting in a complex chain of service calls. On the right, the same architecture uses an orchestration layer to simplify API composition, reducing backend complexity and making integrations easier to manage. The diagram highlights how orchestration creates cleaner, more scalable API workflows." width="507" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Left: retries, fallbacks, and parallel fetches buried inside a single route handler. Right: the same steps as an explicit Unmeshed workflow, named, ordered, and visible.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;None of that is especially exotic. But all of it living inside a route handler is the slow-motion version of a bad day.&lt;/p&gt;

&lt;p&gt;The retry logic for billing sits next to the response shaping. The fallback for the support system is buried three levels deep in an if-block. The parallel fetch is a Promise.all that someone added six months ago, and nobody is fully sure what happens if one of the promises rejects.&lt;/p&gt;

&lt;p&gt;When something goes wrong in production, and something always goes wrong, the debugging process is: check logs across four services, hope the correlation IDs were propagated, piece together a timeline, and pray the failure was in a path that actually has logging.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes when the workflow is the execution layer
&lt;/h2&gt;

&lt;p&gt;With Unmeshed, the endpoint becomes the entry point. The workflow owns the coordination.&lt;/p&gt;

&lt;p&gt;The caller still makes one request to one URL. But the steps, the branching, the retries, the parallel execution: all of that lives inside an explicit workflow definition instead of being scattered across the handler and its dependencies.&lt;/p&gt;

&lt;p&gt;Your services still own their domains. The profile service still owns profile data. Billing still owns subscription state. The support platform still owns tickets. What moves out of the handler is the logic that coordinates between them.&lt;/p&gt;

&lt;p&gt;That separation matters more than it might sound. It means:&lt;/p&gt;

&lt;p&gt;The coordination logic is visible. Instead of reconstructing what the handler does by reading code, you can see the execution graph directly. Which steps ran. Which step failed. Which branch was taken. What retried, and whether it succeeded.&lt;/p&gt;

&lt;p&gt;Failures are easier to reason about. When billing is unavailable, the retry policy is defined in the workflow, not implied by a try-catch somewhere in the handler. When the support system is down, the fallback behavior is explicit, not dependent on whether a developer remembered to handle that case.&lt;/p&gt;

&lt;p&gt;Changes are scoped. When product changes the flagging rule for accounts with failed payments, that change lives in the workflow step that applies business rules, not threaded through a handler that also happens to be responsible for parallel fetches and response shaping.&lt;/p&gt;

&lt;p&gt;The response contract stays stable. The caller gets one clean shape regardless of how many systems participate behind the scenes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"customerId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cus_123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"profile"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ava Johnson"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ava@northfield.io"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"subscription"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"plan"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"growth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"active"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recentOrders"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"openTickets"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"flags"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"payment_review"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The frontend does not need to understand your internal architecture. It needs a stable shape. The workflow guarantees that shape regardless of which dependencies had a bad day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calling it looks like any other API
&lt;/h2&gt;

&lt;p&gt;This is not a special invocation model. From the caller's perspective, it is a normal endpoint.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; GET &lt;span class="s2"&gt;"https://your-unmeshed-endpoint/customer/360?customerId=cus_123"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or as a POST with a structured body:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"customerId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cus_123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"includeOrders"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"includeSupport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The caller sees one endpoint, one stable contract, one response. The fact that the execution layer is a workflow instead of a handler is an implementation detail, but it's the implementation detail that makes the whole thing maintainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not every endpoint needs to block
&lt;/h2&gt;

&lt;p&gt;One more thing worth making explicit: the workflow-as-endpoint pattern works for both synchronous and asynchronous flows.&lt;/p&gt;

&lt;p&gt;Some endpoints need to return a completed response immediately. The customer 360 example is synchronous: the caller is waiting. Eligibility checks, pricing calculations, BFF aggregation endpoints, all of these are cases where the caller needs the answer before it can do anything else.&lt;/p&gt;

&lt;p&gt;Other endpoints just need to confirm that a process has started. Onboarding flows, document processing, approval workflows, signup qualification: these are cases where the backend kicks off work that continues after the response. The caller gets a confirmation while the workflow continues in the background.&lt;/p&gt;

&lt;p&gt;In both cases, Unmeshed owns the coordination. The endpoint is the entry point. The difference is just whether the caller waits for the result or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which endpoints actually benefit from this
&lt;/h2&gt;

&lt;p&gt;Not every endpoint needs orchestration. If a route is a thin pass-through to one service, adding a workflow layer is unnecessary overhead.&lt;/p&gt;

&lt;p&gt;But for endpoints that are already doing real coordination work, the workflow model is almost always cleaner than the alternative. Good candidates:&lt;/p&gt;

&lt;p&gt;BFF endpoints that aggregate data from multiple services before returning to a client&lt;br&gt;
Partner-facing APIs that need a stable response contract regardless of backend changes&lt;br&gt;
Internal APIs that coordinate business rules across teams or systems&lt;br&gt;
Any endpoint where retries, fallbacks, and branching logic have started accumulating in the handler&lt;br&gt;
If an endpoint has ever made you think "I'm not sure exactly what this does anymore," it is probably a workflow that has not been given a proper place to live.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real question
&lt;/h2&gt;

&lt;p&gt;Most teams do not make an active decision to grow orchestration logic inside route handlers. It just happens, one added dependency at a time, one edge case at a time, until the endpoint is doing work that was never supposed to be its job.&lt;/p&gt;

&lt;p&gt;The question is not whether to have orchestration. You already have it. The question is whether it stays buried in handlers and helper modules, or lives somewhere designed to coordinate it explicitly.&lt;/p&gt;

&lt;p&gt;For endpoints doing real orchestration work, Unmeshed gives that logic a place designed to hold it: visible, manageable, and built for the kind of multi-system coordination that makes route handlers hard to live with over time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Build backend flows that stay manageable
&lt;/h2&gt;

&lt;p&gt;If your backend endpoints are coordinating multiple systems, applying branching rules, and triggering follow-up work, Unmeshed gives that logic a cleaner place to run.&lt;br&gt;
Try &lt;a href="https://unmeshed.io/signup?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=api-composition-with-unmeshed&amp;amp;utm_content=primary_cta" rel="noopener noreferrer"&gt;Unmeshed&lt;/a&gt; or &lt;a href="https://unmeshed.io/contact?utm_source=blog&amp;amp;utm_medium=organic&amp;amp;utm_campaign=api-composition-with-unmeshed&amp;amp;utm_content=secondary_cta" rel="noopener noreferrer"&gt;Talk to us&lt;/a&gt;&lt;br&gt;
Bring an endpoint or backend flow that has gotten harder to maintain than it should be.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>backend</category>
      <category>api</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
    <item>
      <title>From Netflix Conductor to Unmeshed: How Microservice Orchestration Evolved</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Wed, 05 Aug 2026 05:38:57 +0000</pubDate>
      <link>https://dev.to/unmeshed/from-netflix-conductor-to-unmeshed-how-microservice-orchestration-evolved-m54</link>
      <guid>https://dev.to/unmeshed/from-netflix-conductor-to-unmeshed-how-microservice-orchestration-evolved-m54</guid>
      <description>&lt;p&gt;In the early 2000s, monolithic software architectures dominated but were limited by scalability and prone to outages. The emergence of cloud computing and microservice orchestration revolutionized distributed systems, enabling greater agility and reliability. Netflix pioneered this shift, laying the foundation for modern API orchestration, and today platforms like Unmeshed are taking this even further.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monolithic Software to Cloud Agility in Microservice Orchestration
&lt;/h2&gt;

&lt;p&gt;Early tech platforms were like overloaded large heavy backpacks (monolithic servers) and struggled to scale with user growth. Cloud computing was a game-changer. Imagine ditching a big backpack for a rolling expandable suitcase – flexible, scalable servers offered by services like AWS. Netflix saw the value and went all-in, handling their streaming boom with ease. Cloud computing offered not just scaling, but also reliability. Distributed resources meant fewer crashes or lengthy outages. And companies were able to scale to meet customer demands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Computing and Microservices: How Netflix Revolutionized API &amp;amp; Microservices Orchestration
&lt;/h2&gt;

&lt;p&gt;The rise of cloud computing exposed the limitations of monolithic software. Cloud providers like AWS, Azure, and GCP revolutionized the industry by offering on-demand infrastructure and the ability to build and deploy software rapidly. To leverage these providers, companies shifted towards microservices, breaking down monoliths into smaller, manageable services. These services, managed by small teams, led to a modular and flexible architecture that could scale effortlessly.&lt;/p&gt;

&lt;p&gt;However, the microservices boom introduced new challenges, particularly in managing distributed systems. Simple tasks evolved into complex coordination issues. At the forefront of this transformation, Netflix pioneered solutions with homegrown tools such as Service Discovery and Orchestration. Netflix Conductor emerged as a great solution for managing microservices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conductor: Orchestrating the Future of Streaming (and Beyond)
&lt;/h2&gt;

&lt;p&gt;Netflix's growth exposed a critical need for agility – a need that traditional monolithic systems couldn't meet. With Conductor, designed to seamlessly integrate with existing systems (brownfield applications) and agnostic to programming languages, Conductor empowered Netflix developers to move fast. Recognizing its broader potential, Netflix open-sourced it and today, Conductor's language-agnostic and cloud-neutral design make it the go-to solution for microservice orchestration across industries.&lt;/p&gt;

&lt;h2&gt;
  
  
  unmeshing the Future: Conductor's Legacy Lives On
&lt;/h2&gt;

&lt;p&gt;While Conductor has successfully served a wide range of use cases, the need for evolution became evident. This realization led us to create unmeshed, a next-generation platform designed to address the scale and needs of modern developers. Today's systems are increasingly about integrating various systems seamlessly. Spearheaded by a founding team member of Netflix Conductor, unmeshed aims to be the ultimate, highly reliable orchestration and integration platform. Built by developers for developers.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>architecture</category>
      <category>microservices</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Code vs Config for API Orchestration: A Practical Breakdown</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Tue, 04 Aug 2026 05:17:58 +0000</pubDate>
      <link>https://dev.to/unmeshed/code-vs-config-for-api-orchestration-a-practical-breakdown-28m1</link>
      <guid>https://dev.to/unmeshed/code-vs-config-for-api-orchestration-a-practical-breakdown-28m1</guid>
      <description>&lt;p&gt;One interesting perspective I often hear about workflows is how approaching&lt;br&gt;
them with configuration is better than with code, or the opposite, depending&lt;br&gt;
on who you're talking to.&lt;/p&gt;

&lt;p&gt;Many established products in the workflow orchestration space claim it's&lt;br&gt;
easier to write workflows as code. The biggest argument in favor of this is&lt;br&gt;
that complexity is better addressed in code compared to a configuration or&lt;br&gt;
DSL. This comes with the assumption that workflows will be where the logic&lt;br&gt;
lives.&lt;/p&gt;

&lt;p&gt;My personal take is that this anticipated complexity doesn't really exist.&lt;br&gt;
The moment your code leaves the boundary of a single method, you're already&lt;br&gt;
orchestrating outside of your code. And you end up building a deeply&lt;br&gt;
coupled, hard-to-maintain system when the orchestration leaves your library&lt;br&gt;
boundary to another app or service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code as Building Blocks
&lt;/h2&gt;

&lt;p&gt;A building-blocks code model, interconnected only via orchestration, gives&lt;br&gt;
you cleaner, more testable, and maintainable code, and lets you retain a&lt;br&gt;
simpler, maintainable architecture. Remember: you're still writing code —&lt;br&gt;
you're just wiring things up using orchestration.&lt;/p&gt;

&lt;p&gt;This is evident in how some of us use event-driven choreography. The entire&lt;br&gt;
idea is to decouple and run services that aren't aware of each other. The&lt;br&gt;
events being routed from one place to another don't have complexity that&lt;br&gt;
can be resolved with code.&lt;/p&gt;

&lt;p&gt;However, the challenge with choreography is the lack of visibility into how&lt;br&gt;
things map. This is where the power of orchestration comes through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code vs Configuration
&lt;/h2&gt;

&lt;p&gt;The topic of this debate is moot, because it's really your code that's&lt;br&gt;
being orchestrated. It would make less sense to orchestrate &lt;em&gt;within&lt;/em&gt; code.&lt;br&gt;
Instead, the code you write should be orchestrated to create the flows that&lt;br&gt;
meet your goals — while keeping things cleanly decoupled, unmeshed.&lt;/p&gt;

&lt;p&gt;What are your thoughts on this? Is it time to unmesh your workflow&lt;br&gt;
complexity from code?&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>architecture</category>
      <category>api</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Who’s Actually in Control When Everything Breaks at Once?</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 03 Aug 2026 05:30:10 +0000</pubDate>
      <link>https://dev.to/unmeshed/whos-actually-in-control-when-everything-breaks-at-once-4m5o</link>
      <guid>https://dev.to/unmeshed/whos-actually-in-control-when-everything-breaks-at-once-4m5o</guid>
      <description>&lt;h2&gt;
  
  
  Orchestration Platforms: Gaining control in the face of chaos
&lt;/h2&gt;

&lt;p&gt;As an engineering lead for an e-commerce platform, imagine it’s Black Friday—your system is under an unprecedented load, orders are flying in from across the globe, and your services are being pushed to their limits. You’ve got a complex web of systems to manage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo57tqpssaxqm7uedg1qa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo57tqpssaxqm7uedg1qa.png" alt="E-commerce workflow diagram illustrating the order processing journey through inventory management, payment processing, shipping services, and AI-powered recommendations. Each stage depends on multiple services and external integrations, highlighting the complexity of modern distributed systems." width="799" height="436"&gt;&lt;/a&gt;&lt;br&gt;
It’s a highly interconnected and distributed environment, and with this level of complexity, even a minor failure can create cascading issues that jeopardize the entire operation. This is where an orchestration platform—or, to use a fitting analogy, a &lt;strong&gt;ringmaster&lt;/strong&gt;—comes into play.&lt;/p&gt;

&lt;h2&gt;
  
  
  How an Orchestration Platform Handles the Complexity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9oxoiu0bnzu9a79cr3hv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9oxoiu0bnzu9a79cr3hv.png" alt="Diagram showing an orchestration platform as a central coordination layer between client channels such as web, mobile, chat, edge services, and APIs, and backend systems including service APIs, LLM model APIs, external systems, queues, and databases. The platform runs workflows and processes at scale across cloud and Kubernetes environments." width="800" height="570"&gt;&lt;/a&gt;&lt;br&gt;
An orchestration platform ensures that every component in this highly distributed environment interacts smoothly. Here’s how:&lt;/p&gt;

&lt;h3&gt;
  
  
  Service Coordination and Workflow Automation
&lt;/h3&gt;

&lt;p&gt;In complex architectures, services often rely on each other to complete a workflow. For instance, before shipping an order, the system needs to verify inventory, process the payment, and generate a shipping label—all while ensuring no single point of failure disrupts the flow. The orchestration platform automatically coordinates the workflows by handling service-to-service communication, retrying failed tasks, and ensuring each service operates in the correct sequence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Error Handling and Fault tolerance
&lt;/h3&gt;

&lt;p&gt;Even in the best-engineered systems, things break—an API call might time out, a database query might fail, or a service could crash under load. Without a centralized platform to manage these failures, developers would have to build custom error-handling mechanisms for every service interaction, increasing the complexity of the codebase. This needs not be the case. If the payment gateway is temporarily unavailable, the platform can queue orders for later processing, ensuring the order system continues to function without a complete halt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling and Load Management
&lt;/h3&gt;

&lt;p&gt;Through horizontal scaling, orchestration platform spins up additional instances of services to handle increased demand, while load balancers distribute traﬃc evenly across these instances. This ensures that no single service becomes a bottleneck. During peak traﬃc, the orchestration platform can automatically scale up your payment processing service or spin up additional AI model instances to keep up with the demand for personalized recommendations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-Time Monitoring and Observability
&lt;/h3&gt;

&lt;p&gt;Visibility into system performance is critical for preventing downtime. Orchestration platforms provide real-time monitoring, allowing engineering teams to track the status of workflows, measure performance, and detect bottlenecks or failures before they impact the customer experience. If one service in your workflow starts lagging—say, the AI recommendation model—the platform’s monitoring tools will alert you to the issue, allowing you to address it before it affects the customer experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Handling Complex Business Logic
&lt;/h3&gt;

&lt;p&gt;Modern e-commerce systems often require custom business rules for processing orders, handling refunds, managing stock levels, or even implementing fraud detection. These rules may change frequently and can vary based on the region, customer type, or order size. Orchestration platforms make it easy to implement and modify these rules without having to refactor the underlying codebase for each service. You can define custom workflows to handle these scenarios in the orchestration layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts: Unmeshed as the Ringmaster of Your System
&lt;/h2&gt;

&lt;p&gt;Without a ringmaster, managing an e-commerce platform’s complex infrastructure on a high-traffic day like Black Friday would be overwhelming. By integrating orchestration platform into your architecture, it provides the orchestration layer necessary to manage workflows, handle errors, and scale your systems gracefully, ensuring everything runs seamlessly—even when the unexpected happens. For engineering teams dealing with complex distributed systems, investing in an orchestration platform is a game-changer. It’s the difference between a chaotic circus and a perfectly synchronized show, where every component plays its part flawlessly.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>microservices</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
    <item>
      <title>Stop Building "Black-Box" Microservices: How Workflow Orchestration Saves Developer Time</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Fri, 31 Jul 2026 05:33:02 +0000</pubDate>
      <link>https://dev.to/unmeshed/stop-building-black-box-microservices-how-workflow-orchestration-saves-developer-time-i54</link>
      <guid>https://dev.to/unmeshed/stop-building-black-box-microservices-how-workflow-orchestration-saves-developer-time-i54</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Everyday, between coffee breaks (maybe tea?), we click on tech news in search of some technology breakthroughs that are somewhat relevant to us and hopefully, transform the quality of our work and supercharge productivity. My question to you is, have you found anything that makes a direct impact on your productivity? The truth is, in today’s fast-paced digital landscape, businesses need to innovate quickly and operate efficiently to stay competitive, and developers are responsible for carrying out the implementation.&lt;/p&gt;

&lt;p&gt;My take is that an orchestration platforms have become such an invaluable tool in achieving these goals, transforming how companies manage complex workflows and streamline integrations, and this is a clear sign that you, the developer, will benefit because you will see massive time saved from all sort of mundane tasks and focus on what really matters to you and your team. From automating intricate processes to visualizing workflows and simplifying system integrations, orchestration is at the heart of driving efficiency and enabling rapid innovation.&lt;/p&gt;

&lt;p&gt;Here, we’ll explore the &lt;strong&gt;top 5&lt;/strong&gt; ways orchestration platforms empower businesses to boost productivity, accelerate development, and bring impactful ideas to market faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automating Complex Flows: Boosting Efficiency in Technical and Business Processes
&lt;/h2&gt;

&lt;p&gt;Orchestration platforms &lt;strong&gt;simplify&lt;/strong&gt; the automation of intricate workflows, from handling backend data processes to customer-facing business flows. These tools can handle both long-running (subjected to technical challenges) and short-running tasks (surge in volume), ensuring that every workflow is fully managed and optimized.&lt;/p&gt;

&lt;p&gt;For example, an orchestration platform enables stock-trading logs that span several hours and involve various data-sensitive components or coordinate real-time order processing for a trading firm. Automating these flows reduces manual errors, accelerates task completion, and enables a seamless, &lt;strong&gt;end-to-end process&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accelerate Go-to-Market with Fast Prototyping and Experimentation
&lt;/h2&gt;

&lt;p&gt;Another key feature of orchestration is that it allows teams to quickly assemble and deploy &lt;strong&gt;proof-of-concept workflows&lt;/strong&gt;, enabling rapid testing and iteration in live environments. This fast-tracks the process of moving from an idea to a production-ready solution.&lt;/p&gt;

&lt;p&gt;Your deployment team will have peace of mind deploying with the integration of the orchestration platform, allowing processing errors to be detected and handled immediately, through the &lt;strong&gt;end-to-end process visualization&lt;/strong&gt;, essentially eliminating ‘black-box’ scenarios like it’s a thing of the past.&lt;/p&gt;

&lt;p&gt;By making it easy to assemble creative workflows and persistent state management, businesses can explore innovative concepts and observe their impact in real time, reducing the time it takes to refine and launch new features. This “learn-by-doing” approach is essential for agile development cycles, especially for teams looking to try out cutting-edge ideas or disruptive changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualizing Workflows: Enhancing Clarity and Transparency
&lt;/h2&gt;

&lt;p&gt;With orchestration, workflows are no longer “black box” business processes. Each loosely coupled component is visually represented by process flows, displaying each step’s logical sequence and dependencies. These visualizations help teams quickly understand and communicate the workflow structure, akin to the &lt;strong&gt;original design diagrams&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This approach aligns team members, provides documentation for stakeholders, and improves troubleshooting by showing where each action takes place within the flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplified System Integrations: Bridging Internal and External Systems Seamlessly
&lt;/h2&gt;

&lt;p&gt;In addition, an orchestration platform provides visibility into &lt;strong&gt;integrations across internal and external systems&lt;/strong&gt;, making it easy to see where different applications and data points connect.&lt;/p&gt;

&lt;p&gt;For example, consider a hospital that uses an orchestration platform to manage patient data across multiple systems. When a doctor orders lab work, the orchestration platform automatically coordinates the order with an external lab system, retrieves the results, and updates the EHR in real-time. The platform also integrates with the hospital's billing softwasre to automatically generate invoices for services rendered. With the orchestration platform’s visibility, the maintenance team can easily see where each data transfer occurs, identify any integration issues (e.g., delays in data retrieval from the lab), and troubleshoot accordingly.&lt;/p&gt;

&lt;p&gt;This transparency not only ensures seamless data flow across different systems but also helps the hospital maintain accurate billing and compliance. Additionally, by understanding these touchpoints, the deployment teams can optimize workflows, improve system reliability, and reduce manual intervention, which is crucial in a healthcare environment where accuracy and efficiency are paramount.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accelerated Development with Reduced Code Complexity
&lt;/h2&gt;

&lt;p&gt;While there are ongoing debates on the level of participation of humans (also known as human tasks) in workflow management, there is no denial that incorporating human tasks within complex workflows managed by an orchestration platform brings a powerful layer of flexibility and decision-making to automated processes.&lt;/p&gt;

&lt;p&gt;Orchestration platforms let engineers build powerful workflows with minimal code, allowing teams to deliver complex functionality quickly. This reduction in code complexity not only shortens development time but also makes maintenance and &lt;strong&gt;scaling more manageable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Teams can spend less time on repetitive coding tasks and focus more on building value-added features, innovation, and reliability. Additionally, orchestration platforms enable modular design, allowing parts of a workflow to be swapped out easily, facilitating faster adoption of new technologies like AI, and machine learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  My point is…
&lt;/h2&gt;

&lt;p&gt;Orchestration isn’t just a tool—it’s a catalyst for change and growth. By automating workflows, enhancing visibility, and enabling agile development, orchestration platforms allow businesses to focus more on innovation and less on technical overhead.&lt;/p&gt;

&lt;p&gt;The result? &lt;strong&gt;Faster go-to-market times&lt;/strong&gt;, improved operational efficiency, and a technology stack that’s primed for future advancements. Embracing orchestration equips businesses with the agility to evolve in a dynamic environment, empowering teams to build, adapt, and grow with confidence.&lt;/p&gt;

&lt;p&gt;If you are interested to know more about how an orchestration platform supercharges your productivity and results in massive saving on business cost, drop us an email at &lt;a href="mailto:contact@unmeshed.io"&gt;contact@unmeshed.io&lt;/a&gt; for a demo.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>architecture</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>What a Truly API-Native Orchestration Platform Looks Like</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Thu, 30 Jul 2026 05:53:32 +0000</pubDate>
      <link>https://dev.to/unmeshed/what-a-truly-api-native-orchestration-platform-looks-like-356</link>
      <guid>https://dev.to/unmeshed/what-a-truly-api-native-orchestration-platform-looks-like-356</guid>
      <description>&lt;p&gt;Imagine this: you’re driving and suddenly get lost. Your eager passengers jump in to help. One of them, feeling nostalgic, insists on using a paper map to find the way. Meanwhile, another passenger does what most of us do today—checks Google Maps to quickly find the fastest route to your destination. You might be thinking, come on! Who is still using paper maps today?! Yes, this might sound like a far-fetched example. Both paper maps and Google Maps aim to serve the same purpose: getting you to your destination. But wouldn’t you agree that sometimes we stick to using tools that no longer meet our needs as effectively as they once did?&lt;/p&gt;

&lt;p&gt;In this post, we’ll explore why traditional orchestration solutions struggle with API use cases and how Unmeshed—a new-generation orchestration platform—steps in to bridge these gaps effectively. APIs are at the heart of digital innovation, it enables seamless data exchange, it ensures real-time user interactions and handles service integrations across various systems. However, handling API workflows effectively requires an orchestration platform that meets very specific demands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Traditional Orchestration Platforms Struggle with APIs
&lt;/h2&gt;

&lt;p&gt;Most traditional orchestration platforms were designed for a very different set of goals: it manages complex and long-running workflows that span multiple systems and involves robust state management and error handling. While these capabilities are essential for backend processes, they perform less than ideal when applied to the high-speed demands of real-time API orchestration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Traditional Platforms Prioritize Reliability Over Speed
&lt;/h3&gt;

&lt;p&gt;For example, a platform like Netflix Conductor are open-source orchestration solutions that handle complex, multi-step workflows. Their core purpose is to reliably store and manage the states of each workflow step, ensuring that processes complete successfully—even in the face of failures.&lt;/p&gt;

&lt;p&gt;This approach makes Conductor an excellent option for backend orchestration, where stability is the primary requirement. However, when it comes to APIs, this state-heavy, reliability-focused model leads to increased latency. Essentially, APIs demand near-zero response times, a traditional platform and need time to store and track each step, that adds unnecessary delay thus making them unsuitable for low-latency API calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-Time Needs Aren’t a Design Priority
&lt;/h3&gt;

&lt;p&gt;Bear in mind that API use cases typically require response times measured in milliseconds, as well as the ability to stream partial content and handle thousands of requests per second.&lt;/p&gt;

&lt;p&gt;To support these needs, an orchestration platform must prioritize speed and lightweight processing over extensive state tracking. Unfortunately, this demand is often in direct conflict with the design principles of traditional platforms, which prioritize reliability over real-time performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complex State Management is Unnecessary for APIs
&lt;/h3&gt;

&lt;p&gt;In API orchestration, the goal is often to quickly query backend systems, transform data, and return a response. In fact, a complex state management between steps is generally unnecessary and counterproductive for APIscenarios, as it only adds to the processing overhead.&lt;/p&gt;

&lt;p&gt;Traditional platforms’ is built to treat every step as a stateful operation that needs to be recorded, managed, and monitored, but this approach isn’t well-suited for the quick, stateless nature of most API workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Requirements for an Effective API Orchestration Platform
&lt;/h2&gt;

&lt;p&gt;In response to limitations by traditional orchestration platforms, a dynamic orchestration platform must meet a set of unique requirements that prioritize speed, security, and efficiency, while continuing to be reliable in all scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fast Response Times:
&lt;/h3&gt;

&lt;p&gt;APIs need to deliver data at near-instant speeds, often within milliseconds, to maintain a seamless user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ability to Stream Partial Content:
&lt;/h3&gt;

&lt;p&gt;In some cases, APIs may need to begin delivering content before all data is retrieved. The ability to stream partial results as they're available can dramatically improve the perceived speed of API responses and enhance user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Near-Zero Latency:
&lt;/h3&gt;

&lt;p&gt;APIs power real-time interactions, meaning they must operate with as little latency as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication, Rate Limiting, and Security:
&lt;/h3&gt;

&lt;p&gt;APIs often handle sensitive data, making robust security measures such as API key authentication and rate limiting critical.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Unmeshed Bridges the Gap
&lt;/h2&gt;

&lt;p&gt;In Unmeshed, we redefined orchestration to support both API and backend scenarios, by creating a unique solution that’s as effective for high-speed API workflows as it is for complex, long-running backend processes. Unmeshed combines the stability of traditional orchestration with the speed and efficiency needed for API management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built for Multiple Scenarios
&lt;/h3&gt;

&lt;p&gt;Unmeshed’s architecture was designed to handle the high-speed, low-latency requirements of API orchestration while retaining the capabilities necessary for backend workflows. It is flexible enough to handle both API-driven, short-lived processes and long-running orchestration scenarios, making it a versatile choice for a variety of use cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimized for Latency and Speed
&lt;/h3&gt;

&lt;p&gt;For APIs, where latency and speed are critical, Unmeshed operates with near-zero latency. Unlike traditional platforms, Unmeshed doesn’t over-rely on complex state management, reducing unnecessary delays. This approach means that API calls are orchestrated efficiently, allowing for real-time interactions that are impossible with more state-heavy solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supports Parallel and Fan-Out Queries
&lt;/h3&gt;

&lt;p&gt;Unmeshed allows for fan-out queries, enabling the platform to quickly access multiple backend systems, gather data, and transform it for API responses. This makes it easy to deliver comprehensive, real-time information to users. For instance, a fan-out query might retrieve user account data from one system, recent transaction data from another, and current offer information from yet another—all in one fast API call. Unmeshed manages this complexity without the latency typical of traditional orchestration platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Seamless Data Transformation and Response Handling
&lt;/h3&gt;

&lt;p&gt;API workflows often require data transformation before results are sent back to the client. Unmeshed handles these transformations on the fly, allowing API calls to return precise, user-ready data without additional processing delays.This capability is essential for delivering personalized or contextualized data directly to end-users in real time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unmeshed: Meeting Today’s Orchestration Demands
&lt;/h2&gt;

&lt;p&gt;In today’s dynamic environment, businesses need an orchestration platform that can handle a range of use cases, from real-time API management to robust, long-running workflows. Unmeshed was built to fill this gap, offering a single platform capable of meeting both high-speed, low-latency requirements for APIs and the durability and reliability necessary for backend processes. By moving beyond the limitations of traditional orchestration platforms, Unmeshed empowers businesses to innovate faster, simplify integrations, and handle complex workflows—all while maintaining the performance needed for modern digital experiences.&lt;/p&gt;

&lt;p&gt;Whether you’re managing high-frequency API calls or orchestrating critical backend processes, Unmeshed offers the flexibility and speed to keep your business agile and competitive. Curious to see Unmeshed in action? Chat with us and explore how our platform can empower your team to innovate and automate like never before.&lt;/p&gt;

</description>
      <category>api</category>
      <category>architecture</category>
      <category>backend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Is an Orchestrator Really a Single Point of Failure?</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Wed, 29 Jul 2026 05:30:02 +0000</pubDate>
      <link>https://dev.to/unmeshed/is-an-orchestrator-really-a-single-point-of-failure-3bjj</link>
      <guid>https://dev.to/unmeshed/is-an-orchestrator-really-a-single-point-of-failure-3bjj</guid>
      <description>&lt;p&gt;Microservices architecture in a highly distributed system requires effective communication, that’s exactly where the orchestration and choreography come into play. Both are two fundamental approaches to managing workflows and data interactions between services. Each has its unique feature and use cases where it excels. Let’s break down the key differences, along with examples to illustrate where one might work better than the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  Orchestration vs. Choreography: The Core Difference
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Orchestration&lt;/strong&gt; is a centralized approach, and the orchestration platform automatically coordinates the workflows by handling service-to-service communication, retrying failed tasks, and ensuring each service operates in the correct sequence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Choreography&lt;/strong&gt;, on the other hand, is a decentralized approach where each microservice independently interacts with other microservice based on predefined rules or events.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Differences
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Orchestration&lt;/th&gt;
&lt;th&gt;Choreography&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Control&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Centralized control&lt;/td&gt;
&lt;td&gt;Decentralized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scalability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Highly scalable with multiple replicas of orchestrators&lt;/td&gt;
&lt;td&gt;Complex to scale as independent interactions should be scaled to match requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Complexity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Work best in complex workflow, resilient&lt;/td&gt;
&lt;td&gt;Harder initial setup effort and higher maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Visibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High – the orchestrator has visibility into the entire process&lt;/td&gt;
&lt;td&gt;Requires a separate tracing tool and logging infrastructure to track&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Decoupled microservices and APIs centrally coordinated by an Orchestrator.&lt;br&gt;&lt;br&gt;• Agentic AI Orchestration&lt;br&gt;• API Orchestration&lt;br&gt;• Workflows&lt;br&gt;• Business Processes&lt;br&gt;• Automation&lt;br&gt;• Human Task Orchestration&lt;/td&gt;
&lt;td&gt;Event-driven architecture built on loosely coupled systems tied together by an event broker.&lt;br&gt;&lt;br&gt;• Event Processing&lt;br&gt;• Data Pipeline Flows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Orchestration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdb4ym19q4y37ofvw1w0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdb4ym19q4y37ofvw1w0i.png" alt="Orchestration workflow coordinating order, payment, inventory, and shipping services through a central process." width="800" height="1117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Choreography
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flzq1nvku3luvab9gxazc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flzq1nvku3luvab9gxazc.png" alt="Choreography architecture where multiple microservices communicate through a shared message broker by producing and consuming events independently." width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Effectively both Orchestration and Choreography are similar. In the case of choreography, you are relying on a single message broker to reliably hold the messages for all the distributed services to consume and respond. In the case of Orchestrator, it acts as a smart message broker and calls the distributed services at the right time. The bonus point for Orchestrator is that it brings an incredible visibility into everything that is going on.&lt;/p&gt;

&lt;p&gt;In simple event driven situations an Orchestrator may not be necessary such as storing events sent by a IoT device. However, in most situations where you need multiple steps to happen correctly an Orchestrator can add value by making it simpler to assemble these steps and giving you visibility into this.&lt;/p&gt;

&lt;p&gt;A common argument is that an Orchestrator could be a single point of failure, however even in choreography the single point of failure exists in the form the message broker. So, choosing a reliable message broker or a reliable orchestrator can alleviate this concern. Platforms like Unmeshed can be used as an Orchestrator and it's designed to scale millions of requests per second reliably.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>microservices</category>
      <category>backend</category>
      <category>devops</category>
    </item>
    <item>
      <title>Your Sequential API Calls Are More Fragile Than You Think</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Tue, 28 Jul 2026 05:44:16 +0000</pubDate>
      <link>https://dev.to/unmeshed/your-sequential-api-calls-are-more-fragile-than-you-think-3h8k</link>
      <guid>https://dev.to/unmeshed/your-sequential-api-calls-are-more-fragile-than-you-think-3h8k</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;An API (Application Programming Interface) is a set of predefined rules and protocols that allows diﬀerent software applications to communicate with each other. APIs are bridging one application to request and retrieve data or services from another application, service, or system. It allows developers to use predefined functions or endpoints to integrate external features, retrieve information, or trigger operations without needing to know the underlying complexities of the system. APIs provide benefits that make them a cornerstone of modern software development. They enable seamless communication between microservices, which is particularly vital as microservices architectures have become a preferred approach for building scalable applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges on calling APIs
&lt;/h2&gt;

&lt;p&gt;The seemingly simple task of calling one API and then another can quickly become a challenging endeavor when factors like reliability, error handling, and system constraints come into play. Let's explore why this process is more complex than it appears and how platforms like Unmeshed simplify the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges in Sequential API Calls
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Reliability and Error Handling
&lt;/h3&gt;

&lt;p&gt;Consider the scenario where you first call an API to send a text message and then call another API to send an email. If the first call succeeds but the second fails due to a temporary issue (e.g., network latency or service downtime), your system needs robust error handling to ensure eventual success without duplicating eﬀorts. For instance, sending multiple text messages due to retries can lead to unnecessary costs and poor user experience. Handling such scenarios requires fine-grained control over retries and recovery strategies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Sensitivity
&lt;/h3&gt;

&lt;p&gt;Some APIs are expensive to invoke, such as sending transactional messages or emails. You can't aﬀord to call these APIs multiple times unnecessarily. For example, if the email API fails after a text message is successfully sent, your system must handle this failure gracefully and retry intelligently without resending the text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Many APIs impose strict rate limits, which means your system must carefully balance requests to avoid hitting those limits. For example, a bulk email service may restrict you to 100 calls per minute, while a payment processing API may limit you to 10 requests per second. To prevent breaches of these limits, you need a control mechanism to manage and queue API calls eﬀectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitoring and Visibility
&lt;/h3&gt;

&lt;p&gt;Debugging and optimizing sequential API workflows can become a nightmare without proper observability. How do you determine which API is slowing down your process? What if a retry loop is failing silently?&lt;/p&gt;

&lt;h3&gt;
  
  
  How Platforms Like Unmeshed Help
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv4b3rsew4qdql1kqcmd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv4b3rsew4qdql1kqcmd.jpg" alt="Diagram showing a sequential API workflow in Unmeshed where a Message API is followed by an Email API, with built-in retries, error handling, database interactions, and workflow monitoring to ensure reliable execution." width="800" height="1258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A platform like Unmeshed addresses these challenges with a set of features tailored to API orchestration:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Chaining API Calls
&lt;/h3&gt;

&lt;p&gt;Automatically coordinate workflows by chaining APIs together. For example, if you need to call a message API followed by an email notification API, Unmeshed ensures the sequence executes smoothly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Built-in rate-limiting capabilities allow you to define how many requests are sent to each API. The system automatically queues additional calls, ensuring compliance with API provider constraints while avoiding bottlenecks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Transformation
&lt;/h3&gt;

&lt;p&gt;APIs often require specific data formats. Unmeshed can handle data transformation between calls, ensuring compatibility without additional development eﬀort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retries and Error Management
&lt;/h3&gt;

&lt;p&gt;Intelligent retry logic ensures that temporary failures (e.g., a timeout while sending an email) are retried with appropriate backoﬀ strategies. You can also configure fallbacks, such as sending a push notification if the email fails repeatedly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visualizing Executions
&lt;/h3&gt;

&lt;p&gt;Unmeshed provides a visual dashboard to monitor your API workflows in real-time. Track metrics like latency, success rates, and retry counts, enabling you to identify and resolve bottlenecks quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Step…
&lt;/h2&gt;

&lt;p&gt;By leveraging Unmeshed, you not only simplify your implementation but also make it robust, scalable, and cost-saving, ensuring seamless execution of even the most complex API workflows. API orchestration is a powerful tool for small and large-scale development teams managing complex microservices architectures. By centralizing and streamlining orchestration logic across services, businesses can enhance their system's performance and experience seamless scaling and evolution of their applications.&lt;/p&gt;

</description>
      <category>api</category>
      <category>microservices</category>
      <category>backend</category>
      <category>devops</category>
    </item>
    <item>
      <title>Does Perf Matter?</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 27 Jul 2026 05:18:13 +0000</pubDate>
      <link>https://dev.to/unmeshed/does-perf-matter-173f</link>
      <guid>https://dev.to/unmeshed/does-perf-matter-173f</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I bet this is one of those questions that lingers in your mind, just like many others, when an orchestration platform is trying to convince you to choose their service. Yes, performance is a critical factor in orchestration platforms, particularly for high-scale use cases where transaction volumes and system demands are significant.&lt;/p&gt;

&lt;p&gt;While traditional orchestration platforms prioritize features and reliability over raw performance, modern use cases often demand both high throughput and cost efficiency. That’s where Unmeshed steps in. Our orchestration platform is the tool you wish you’d had from the start—a reliable way to manage workflows, simplify microservices interactions, and keep everything running smoothly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Performance Matters
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Scalability Requirements
&lt;/h3&gt;

&lt;p&gt;Traditional orchestration platforms, such as Netflix Conductor, were originally designed for slow-running, backend workflows where throughput was less critical. However, as businesses scale, the need for orchestrating millions or even billions of transactions daily requires platforms that can handle such loads efficiently without degrading performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Implications
&lt;/h3&gt;

&lt;p&gt;Performance directly impacts cost-effectiveness. An orchestration platform might function well at low transaction volumes, but if scaling up to handle larger workloads requires exponential cost increases, it becomes unsustainable. For example, spending $20,000 annually to process a few thousand transactions per second is fine but if cost increases to $200,000 for a larger volume it might be untenable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-Time Use Cases
&lt;/h3&gt;

&lt;p&gt;High-performance orchestration is critical for real-time applications, such as payment processing, IoT data pipelines, or AI-driven workflows, where latency and throughput are non-negotiable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unmeshed: A Cost-Effective Performance Solution
&lt;/h2&gt;

&lt;p&gt;Unmeshed is a prime example of how performance and cost efficiency can go hand-in-hand. With a single instance capable of handling up to &lt;strong&gt;10,000 transactions per second (TPS)&lt;/strong&gt;, Unmeshed enables &lt;strong&gt;nearly 1 billion transactions daily&lt;/strong&gt; with ease. For even larger workloads—like 10 billion transactions—it’s as simple as scaling the cluster by adding more instances, all while maintaining efficiency without skyrocketing costs. Unlike traditional platforms that often struggle to balance high performance with affordability, Unmeshed delivers exceptional throughput at a fraction of the cost. This makes it an ideal solution for long-term, high-volume use cases where scalability and cost-effectiveness are key.&lt;/p&gt;

&lt;p&gt;In brief, we conclude that the sweet spot in achieving high performance lies in cost efficiency and being capable of scaling workflows efficiently without overshooting their budgets.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High Performance + High Cost:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Unsustainable for most businesses in the long run, especially at scale.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Moderate Performance + Low Cost:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Suitable for simple, low-throughput workflows but inadequate for complex, large-scale operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High Performance + Low Cost (Optimal):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ideal for scaling workflows efficiently while maintaining budgetary control—this is where platforms like Unmeshed excel.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;When evaluating an orchestration platform, performance alone isn't enough; it must be considered alongside cost efficiency to determine true value. A platform offering high performance at a high cost is often unsustainable for businesses in the long run, particularly at scale. On the other hand, moderate performance at a low cost might work for simple, low-throughput workflows but falls short when handling complex, large-scale operations. This is precisely where platforms like Unmeshed shine, delivering the perfect balance of speed, scalability, and cost-effectiveness to support long-term growth and high-volume use cases.&lt;/p&gt;

</description>
      <category>performance</category>
      <category>backend</category>
      <category>api</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
