<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Workflows on Go Micro</title><link>https://go-micro.dev/tags/workflows.html</link><description>Recent content in Workflows on Go Micro</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 29 Jul 2026 08:42:34 +0100</lastBuildDate><atom:link href="https://go-micro.dev/tags/workflows/index.xml" rel="self" type="application/rss+xml"/><item><title>Durable Workflows</title><link>https://go-micro.dev/blog/2026/06/17/durable-workflows.html</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/17/durable-workflows.html</guid><description>&lt;p&gt;A workflow that calls real services is rarely instant and rarely side-effect-free. It reserves inventory at step one, charges a card at step two, sends a confirmation at step three. Each of those changes the world. So when the process dies between step two and step three — a deploy, an OOM, a node going away — you can&amp;rsquo;t just run it again from the top: that reserves twice and charges twice. And if the workflow was triggered by an event with no human watching, nobody noticed it died at all.&lt;/p&gt;</description></item><item><title>Not Everything Should Be an Agent</title><link>https://go-micro.dev/blog/2026/06/08/not-everything-should-be-an-agent.html</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/08/not-everything-should-be-an-agent.html</guid><description>&lt;p&gt;The last two posts were about agents — &lt;a href="https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent/"&gt;the abstraction&lt;/a&gt;, and then &lt;a href="https://go-micro.dev/blog/2026/06/07/agents-that-plan-and-delegate/"&gt;agents that plan and delegate&lt;/a&gt;, directing their own work over many turns. That&amp;rsquo;s the exciting part. It&amp;rsquo;s also, honestly, the part you should reach for &lt;em&gt;least often&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;An agent decides its own path at runtime. That&amp;rsquo;s powerful when the task genuinely needs it, and a liability when it doesn&amp;rsquo;t — you trade predictability, latency, and cost for flexibility you may not want. Most real work has a known shape: &lt;em&gt;when this event happens, do these things.&lt;/em&gt; For that, you don&amp;rsquo;t want a model improvising. You want a &lt;strong&gt;workflow&lt;/strong&gt;.&lt;/p&gt;</description></item></channel></rss>