<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Ultimate Zion</title>
  <subtitle>Platform and solutions architecture for systems that scale, stay secure and don&#39;t fall over.</subtitle>
  <link href="https://ultimatezion.com/feed.xml" rel="self" />
  <link href="https://ultimatezion.com/" />
  <updated>2026-09-25T00:00:00Z</updated>
  <id>https://ultimatezion.com/</id>
  <author>
    <name>Paul Halton</name>
  </author>
  <entry>
    <title>High Availability in the Age of AI: It Was Never Optional</title>
    <link href="https://ultimatezion.com/blog/high-availability-in-the-age-of-ai/" />
    <updated>2026-05-31T00:00:00Z</updated>
    <id>https://ultimatezion.com/blog/high-availability-in-the-age-of-ai/</id>
    <content type="html">&lt;p&gt;There&#39;s a conversation happening right now in every engineering leadership team, and it goes something like this: &lt;em&gt;&lt;strong&gt;&amp;quot;We need to move fast on AI. What does the infrastructure need to look like?&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The honest answer is: the same as it always should have. Just faster, at higher stakes, and with far less tolerance for getting it wrong.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Availability isn&#39;t a new problem. But AI has changed the consequences of ignoring it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;The AI agent changes everything — and nothing&lt;/h2&gt;
&lt;p&gt;AI agents are being treated like a new category of infrastructure problem. In some ways they are. But they don&#39;t change the fundamental engineering answer.&lt;/p&gt;
&lt;p&gt;What they change is the blast radius. When a stateless web app goes down, users get an error page. When an AI agent goes down mid-workflow — halfway through a multi-step process, having already written to one system and not another — you have broken state, wasted compute, and eroded trust.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The bar for availability just went up. The answer didn&#39;t change.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;What &amp;quot;high availability&amp;quot; actually means in practice&lt;/h2&gt;
&lt;p&gt;I want to be precise here, because this phrase gets thrown around loosely.&lt;/p&gt;
&lt;p&gt;High availability doesn&#39;t mean running two instances in the same data centre. It doesn&#39;t mean having a hot standby you&#39;ve never actually tested a failover against. It doesn&#39;t mean your monitoring dashboard shows green before it shows red.&lt;/p&gt;
&lt;p&gt;Real HA means your application can survive the complete, unplanned loss of any cloud region — and your users experience either nothing at all, or a degradation so minor they barely notice. That&#39;s what regionless infrastructure makes possible.&lt;/p&gt;
&lt;h3&gt;That requires:&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Active traffic distribution, location-agnostic.&lt;/strong&gt; Not just replication. Not just backup. Live traffic flowing into geographically separated regions simultaneously — and critically, the ability to spin up in a new region without re-engineering the architecture to do it. If deploying to a new region requires significant rework, you haven&#39;t built for resilience, you&#39;ve just duplicated a fragile system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Data that follows the compute.&lt;/strong&gt; This is where most teams underestimate the complexity. Your application logic is often the easy part to replicate. Getting your data layer to be consistent, low-latency, and resilient regardless of where workloads are running is the hard part. Whether that&#39;s global database clusters, event-driven replication, or careful design around eventual consistency — this is the work. Don&#39;t skip it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tested, automated failover.&lt;/strong&gt; Runbooks don&#39;t cut it. If your failover depends on a human reading a Confluence or Notion page at 2am, that&#39;s not HA. That&#39;s hope. The mechanism needs to be automated, regularly exercised, and your engineers need to have seen it work before the incident happens.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Health checks that catch real failure modes.&lt;/strong&gt; Not just &lt;em&gt;&lt;strong&gt;&amp;quot;is the pod running?&amp;quot;&lt;/strong&gt;&lt;/em&gt; — but &lt;em&gt;&lt;strong&gt;&amp;quot;is it actually serving traffic correctly?&amp;quot;&lt;/strong&gt;&lt;/em&gt; Synthetic transactions, deep health endpoints, circuit breakers. AI services especially need this, because a model that&#39;s returning degraded or incoherent responses is failing even if every container reports healthy.&lt;/p&gt;
&lt;h2&gt;Why regionless — not just multi-region, not just multi-AZ&lt;/h2&gt;
&lt;figure class=&quot;figure&quot;&gt;
&lt;svg class=&quot;diagram&quot; viewBox=&quot;0 0 900 400&quot; role=&quot;img&quot; aria-labelledby=&quot;ha-t ha-d&quot;&gt;&lt;title id=&quot;ha-t&quot;&gt;Multi-AZ vs multi-region vs regionless&lt;/title&gt;&lt;desc id=&quot;ha-d&quot;&gt;Multi-AZ spreads across zones inside one region and survives a zone loss but not a region loss. Multi-region wires a fixed pair of regions together. Regionless puts health-aware global routing in front of any number of regions, and a new region can be added without rework.&lt;/desc&gt;
&lt;g font-family=&quot;JetBrains Mono, ui-monospace, monospace&quot; font-size=&quot;12&quot; fill=&quot;#d4eef8&quot;&gt;
&lt;text x=&quot;155&quot; y=&quot;34&quot; text-anchor=&quot;middle&quot; font-size=&quot;15&quot; font-weight=&quot;600&quot; fill=&quot;#2de2ff&quot; letter-spacing=&quot;2&quot;&gt;MULTI-AZ&lt;/text&gt;
&lt;text x=&quot;155&quot; y=&quot;54&quot; text-anchor=&quot;middle&quot; fill=&quot;#7ea3b5&quot;&gt;one region, many zones&lt;/text&gt;
&lt;rect x=&quot;35&quot; y=&quot;80&quot; width=&quot;240&quot; height=&quot;190&quot; fill=&quot;rgba(45,226,255,.05)&quot; stroke=&quot;#2de2ff&quot; stroke-opacity=&quot;.6&quot;&gt;&lt;/rect&gt;
&lt;text x=&quot;47&quot; y=&quot;100&quot; fill=&quot;#7ea3b5&quot; font-size=&quot;11&quot; letter-spacing=&quot;1.5&quot;&gt;REGION A&lt;/text&gt;
&lt;rect x=&quot;50&quot; y=&quot;130&quot; width=&quot;64&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;82&quot; y=&quot;185&quot; text-anchor=&quot;middle&quot;&gt;AZ1&lt;/text&gt;
&lt;rect x=&quot;123&quot; y=&quot;130&quot; width=&quot;64&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;155&quot; y=&quot;185&quot; text-anchor=&quot;middle&quot;&gt;AZ2&lt;/text&gt;
&lt;rect x=&quot;196&quot; y=&quot;130&quot; width=&quot;64&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;228&quot; y=&quot;185&quot; text-anchor=&quot;middle&quot;&gt;AZ3&lt;/text&gt;
&lt;text x=&quot;50&quot; y=&quot;310&quot; fill=&quot;#3dff9a&quot;&gt;✓ survives zone loss&lt;/text&gt;
&lt;text x=&quot;50&quot; y=&quot;334&quot; fill=&quot;#ff4d5e&quot;&gt;✕ region-wide event&lt;/text&gt;
&lt;text x=&quot;50&quot; y=&quot;358&quot; fill=&quot;#ff4d5e&quot;&gt;✕ regional DNS / IAM fault&lt;/text&gt;
&lt;text x=&quot;450&quot; y=&quot;34&quot; text-anchor=&quot;middle&quot; font-size=&quot;15&quot; font-weight=&quot;600&quot; fill=&quot;#2de2ff&quot; letter-spacing=&quot;2&quot;&gt;MULTI-REGION&lt;/text&gt;
&lt;text x=&quot;450&quot; y=&quot;54&quot; text-anchor=&quot;middle&quot; fill=&quot;#7ea3b5&quot;&gt;a fixed, hand-wired pair&lt;/text&gt;
&lt;rect x=&quot;325&quot; y=&quot;80&quot; width=&quot;110&quot; height=&quot;190&quot; fill=&quot;rgba(45,226,255,.05)&quot; stroke=&quot;#2de2ff&quot; stroke-opacity=&quot;.6&quot;&gt;&lt;/rect&gt;
&lt;text x=&quot;335&quot; y=&quot;100&quot; fill=&quot;#7ea3b5&quot; font-size=&quot;11&quot; letter-spacing=&quot;1.5&quot;&gt;REGION A&lt;/text&gt;
&lt;rect x=&quot;338&quot; y=&quot;130&quot; width=&quot;38&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;384&quot; y=&quot;130&quot; width=&quot;38&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;
&lt;rect x=&quot;465&quot; y=&quot;80&quot; width=&quot;110&quot; height=&quot;190&quot; fill=&quot;rgba(45,226,255,.05)&quot; stroke=&quot;#2de2ff&quot; stroke-opacity=&quot;.6&quot;&gt;&lt;/rect&gt;
&lt;text x=&quot;475&quot; y=&quot;100&quot; fill=&quot;#7ea3b5&quot; font-size=&quot;11&quot; letter-spacing=&quot;1.5&quot;&gt;REGION B&lt;/text&gt;
&lt;rect x=&quot;478&quot; y=&quot;130&quot; width=&quot;38&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;524&quot; y=&quot;130&quot; width=&quot;38&quot; height=&quot;100&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;
&lt;line x1=&quot;435&quot; y1=&quot;175&quot; x2=&quot;465&quot; y2=&quot;175&quot; stroke=&quot;#ffb547&quot; stroke-width=&quot;2&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;435&quot; y1=&quot;185&quot; x2=&quot;465&quot; y2=&quot;185&quot; stroke=&quot;#ffb547&quot; stroke-width=&quot;2&quot;&gt;&lt;/line&gt;
&lt;text x=&quot;340&quot; y=&quot;310&quot; fill=&quot;#3dff9a&quot;&gt;✓ survives region loss&lt;/text&gt;
&lt;text x=&quot;340&quot; y=&quot;334&quot; fill=&quot;#ff4d5e&quot;&gt;✕ hard-wired to two regions&lt;/text&gt;
&lt;text x=&quot;340&quot; y=&quot;358&quot; fill=&quot;#ff4d5e&quot;&gt;✕ new region = new project&lt;/text&gt;
&lt;text x=&quot;750&quot; y=&quot;34&quot; text-anchor=&quot;middle&quot; font-size=&quot;15&quot; font-weight=&quot;600&quot; fill=&quot;#ffb547&quot; letter-spacing=&quot;2&quot;&gt;REGIONLESS&lt;/text&gt;
&lt;text x=&quot;750&quot; y=&quot;54&quot; text-anchor=&quot;middle&quot; fill=&quot;#7ea3b5&quot;&gt;location is a variable&lt;/text&gt;
&lt;rect x=&quot;615&quot; y=&quot;80&quot; width=&quot;270&quot; height=&quot;34&quot; fill=&quot;rgba(255,181,71,.12)&quot; stroke=&quot;#ffb547&quot;&gt;&lt;/rect&gt;
&lt;text x=&quot;750&quot; y=&quot;102&quot; text-anchor=&quot;middle&quot; fill=&quot;#ffb547&quot; font-size=&quot;11&quot; letter-spacing=&quot;1.5&quot;&gt;HEALTH-AWARE GLOBAL ROUTING&lt;/text&gt;
&lt;line x1=&quot;659&quot; y1=&quot;114&quot; x2=&quot;659&quot; y2=&quot;150&quot; stroke=&quot;#ffb547&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;750&quot; y1=&quot;114&quot; x2=&quot;750&quot; y2=&quot;150&quot; stroke=&quot;#ffb547&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;841&quot; y1=&quot;114&quot; x2=&quot;841&quot; y2=&quot;150&quot; stroke=&quot;#ffb547&quot; stroke-dasharray=&quot;4 4&quot;&gt;&lt;/line&gt;
&lt;rect x=&quot;620&quot; y=&quot;150&quot; width=&quot;78&quot; height=&quot;120&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;659&quot; y=&quot;215&quot; text-anchor=&quot;middle&quot;&gt;REG A&lt;/text&gt;
&lt;rect x=&quot;711&quot; y=&quot;150&quot; width=&quot;78&quot; height=&quot;120&quot; fill=&quot;rgba(45,226,255,.12)&quot; stroke=&quot;#2de2ff&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;750&quot; y=&quot;215&quot; text-anchor=&quot;middle&quot;&gt;REG B&lt;/text&gt;
&lt;rect x=&quot;802&quot; y=&quot;150&quot; width=&quot;78&quot; height=&quot;120&quot; fill=&quot;none&quot; stroke=&quot;#2de2ff&quot; stroke-dasharray=&quot;5 5&quot;&gt;&lt;/rect&gt;&lt;text x=&quot;841&quot; y=&quot;208&quot; text-anchor=&quot;middle&quot; fill=&quot;#7ea3b5&quot;&gt;+ ANY&lt;/text&gt;&lt;text x=&quot;841&quot; y=&quot;226&quot; text-anchor=&quot;middle&quot; fill=&quot;#7ea3b5&quot;&gt;REGION&lt;/text&gt;
&lt;text x=&quot;630&quot; y=&quot;310&quot; fill=&quot;#3dff9a&quot;&gt;✓ survives region loss&lt;/text&gt;
&lt;text x=&quot;630&quot; y=&quot;334&quot; fill=&quot;#3dff9a&quot;&gt;✓ add a region, no rework&lt;/text&gt;
&lt;text x=&quot;630&quot; y=&quot;358&quot; fill=&quot;#3dff9a&quot;&gt;✓ routes to nearest healthy&lt;/text&gt;
&lt;/g&gt;&lt;/svg&gt;
&lt;figcaption&gt;Multi-AZ, multi-region and regionless: what each one survives.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Multi-AZ gets you a long way, and if you haven&#39;t got it already, start there. But it doesn&#39;t protect you from cloud provider region-wide events. And those happen.&lt;/p&gt;
&lt;p&gt;Anyone reading this has seen it. Region-wide degradation that takes out multiple Availability Zones simultaneously. It&#39;s not a rare edge case — across the major cloud providers there have been approximately 10–15 significant regional outages in the last 12 months alone. An infrastructure fault at the network or control plane level that cascades across everything within that blast radius. A dependency — DNS, IAM, a managed service — that&#39;s regional and fails everything that relies on it.&lt;/p&gt;
&lt;p&gt;If your entire workload sits in a single region, that region going dark takes you with it. Doesn&#39;t matter how resilient your internal architecture is.&lt;/p&gt;
&lt;p&gt;Multi-region gets you further. But &amp;quot;cross-region&amp;quot; as a concept still implies a fixed set of regions — typically two — that you&#39;ve manually wired together. That&#39;s better than single region, but it still has a ceiling.&lt;/p&gt;
&lt;p&gt;Regionless is different. It means the architecture itself has no opinion about where it runs. Infrastructure as code that deploys cleanly to any region. Routing that adapts to where capacity is healthy. No hardcoded region dependencies in your services. The ability to add a new region — or shift load to one — without an engineering project to make it happen.&lt;/p&gt;
&lt;p&gt;That&#39;s the meaningful shift. You&#39;re not building resilience by picking a second location. You&#39;re building an architecture that is inherently location-agnostic. And in the AI era, where you may need to place workloads closer to users for latency, comply with data residency requirements across multiple jurisdictions, or respond to a regional cloud failure without prior planning — that flexibility is not a nice-to-have. It&#39;s a competitive and operational necessity.&lt;/p&gt;
&lt;p&gt;For AI workloads, this matters even more. AI services often have hard dependencies on third-party APIs, model inference endpoints, or large language model providers. If any of those are pinned to a single location, you&#39;ve inherited their failure modes too. A regionless architecture gives you options — fallback routing, cached responses, graceful degradation — that you simply don&#39;t have when everything is tied to a fixed location.&lt;/p&gt;
&lt;h2&gt;The cost question everyone asks&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;This doubles our infrastructure cost.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;It doesn&#39;t&lt;/strong&gt; — and that&#39;s the first thing to correct when this comes up. A well-designed regionless architecture runs non-primary regions lean. You&#39;re not running multiple full production environments simultaneously. You&#39;re running one primary and right-sized capacity elsewhere that scales out when needed. With reserved capacity and intelligent routing, the overhead is typically 20–40% above single-region, not 100%.&lt;/p&gt;
&lt;p&gt;But there&#39;s an even stronger answer for active-active deployments: you&#39;re not adding compute capacity at all. You&#39;re redistributing it. If you&#39;re already running the infrastructure to handle your current load, you can split that load 50/50 across two regions today. Same total compute, just spread across two locations. The additional cost is real but focused — network infrastructure, VPCs, inter-region connectivity, data transfer. That&#39;s a fraction of what people assume when they hear &amp;quot;run everything twice&amp;quot;. The work is in the architecture. The bill is manageable.&lt;/p&gt;
&lt;p&gt;But more importantly, the question is being asked backwards.&lt;/p&gt;
&lt;p&gt;The question isn&#39;t &lt;em&gt;&lt;strong&gt;&amp;quot;can we afford regionless infrastructure?&amp;quot;&lt;/strong&gt;&lt;/em&gt; It&#39;s &lt;em&gt;&lt;strong&gt;&amp;quot;what does an outage cost us?&amp;quot;&lt;/strong&gt;&lt;/em&gt; One hour of downtime — lost revenue, SLA breach penalties, engineering incident response, customer trust erosion — almost always exceeds months of the incremental infrastructure cost. Put that number in the room and the conversation changes.&lt;/p&gt;
&lt;p&gt;FinOps discipline matters here too. Reserved capacity, intelligent traffic routing biased heavily toward your primary region, right-sized standby — these are the tools that let you get the resilience benefit without overpaying for it. The architecture answer stays the same. The cost is a design problem, not a veto.&lt;/p&gt;
&lt;h2&gt;Where AI specifically raises the stakes&lt;/h2&gt;
&lt;p&gt;A few things about AI workloads that make regionless infrastructure more complex to design, and more necessary to get right:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;State complexity.&lt;/strong&gt; Traditional stateless apps are easy to replicate. AI agents often carry context — conversation history, tool call results, intermediate reasoning state. You need a strategy for where that state lives, how it&#39;s replicated, and what happens to an in-flight agent session if its primary region fails. A regionless architecture needs to handle state portability — not just compute portability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cost-per-failure.&lt;/strong&gt; Every failed invocation of an AI model is compute cost you&#39;ve paid for nothing. At scale, high error rates aren&#39;t just a user experience problem — they&#39;re a budget problem. Resilient infrastructure that degrades gracefully, retries intelligently, and routes around failure is also FinOps infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Latency sensitivity.&lt;/strong&gt; Many AI interactions are synchronous and time-sensitive. A regionless architecture should keep users on their nearest healthy region — not route them halfway around the world because the primary had a blip. The routing intelligence matters as much as the regional footprint.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependency chains.&lt;/strong&gt; AI systems tend to have longer dependency chains than traditional apps — model endpoints, embedding services, vector stores, memory systems, tool integrations. Every link in that chain needs to be resilient. Regionless infrastructure at the edge doesn&#39;t help you if something deep in the chain is pinned to a single location.&lt;/p&gt;
&lt;h2&gt;This is foundational, not advanced&lt;/h2&gt;
&lt;p&gt;I want to push back on the framing that regionless infrastructure is an &lt;em&gt;&amp;quot;advanced&amp;quot;&lt;/em&gt; engineering concern — something you graduate to once you&#39;ve matured. It isn&#39;t. It&#39;s foundational infrastructure for anything that matters.&lt;/p&gt;
&lt;p&gt;The reason it gets treated as optional is because it&#39;s invisible when it&#39;s working and deemed expensive to build. Availability doesn&#39;t appear on a feature list. It doesn&#39;t show up in a sprint demo. Engineers don&#39;t get celebrated for building the thing that never fails.&lt;/p&gt;
&lt;p&gt;But it is, without question, the most commercially important resilience investment a platform team can make. It protects revenue. It protects reputation. It protects the teams who depend on the platform to deliver.&lt;/p&gt;
&lt;p&gt;In the AI era, where an agent might be acting on behalf of a user, automating a business process, or making something happen in the real world — the stakes of availability failure are higher than they&#39;ve ever been. An AI system that&#39;s sometimes available is not a system people will trust. And trust, once lost, is far harder to rebuild than the infrastructure that would have prevented the outage in the first place.&lt;/p&gt;
&lt;h2&gt;What to do if you&#39;re not there yet&lt;/h2&gt;
&lt;p&gt;If you&#39;re reading this and you know your architecture isn&#39;t regionless yet, here&#39;s where to focus:&lt;/p&gt;
&lt;h3&gt;1. Map your failure modes honestly&lt;/h3&gt;
&lt;p&gt;Which services are single-region? Which are multi-AZ only? Which have hardcoded regional dependencies baked in? Prioritise by commercial impact — start with the workloads where downtime costs the most.&lt;/p&gt;
&lt;h3&gt;2. Fix the data layer first&lt;/h3&gt;
&lt;p&gt;Compute is the easy part. Database replication, event streaming, consistency models across regions — this is where the real design work lives and it takes the longest. Start it before anything else.&lt;/p&gt;
&lt;h3&gt;3. Build for location-agnostic deployment&lt;/h3&gt;
&lt;p&gt;Infrastructure as code, no hardcoded region references, routing that treats region as a variable not a constant. Every time you build something new, ask: could this deploy to a different region without rework? If no, fix it before it scales.&lt;/p&gt;
&lt;h3&gt;4. Automate your failover before you need it&lt;/h3&gt;
&lt;p&gt;Build the mechanism, test it in non-production, run a game day. The first time failover runs should not be a real incident.&lt;/p&gt;
&lt;h3&gt;5. Get observability everywhere you run&lt;/h3&gt;
&lt;p&gt;Centralised logging, distributed tracing, synthetic monitoring from outside each region. You can&#39;t manage what you can&#39;t see — and you can&#39;t route around failure you haven&#39;t detected.&lt;/p&gt;
&lt;h3&gt;6. Make the case in commercial language&lt;/h3&gt;
&lt;p&gt;Resilience work is hard to fund because the benefit is invisible until something breaks. Flip the framing: what is the cost of the outage you&#39;re preventing? That&#39;s the investment case.&lt;/p&gt;
&lt;h2&gt;The bottom line&lt;/h2&gt;
&lt;p&gt;Regionless high availability infrastructure is not a nice-to-have for organisations running AI systems. It&#39;s the foundation. Everything else — the agent capabilities, the intelligent features, the automation, the personalisation — all of it depends on the infrastructure being there when it&#39;s needed, wherever it&#39;s needed.&lt;/p&gt;
&lt;p&gt;AI has raised the stakes, sharpened the blast radius, and made the cost of unavailability more visible than it&#39;s ever been. The answer is the same as it&#39;s always been — just bigger in ambition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Build it once. Build it right. Build it so it doesn&#39;t care where it runs — because your users won&#39;t care where it fails.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <title>System online</title>
    <link href="https://ultimatezion.com/blog/system-online/" />
    <updated>2026-09-25T00:00:00Z</updated>
    <id>https://ultimatezion.com/blog/system-online/</id>
    <content type="html">&lt;p&gt;After 25+ years building and running infrastructure, I&#39;ve accumulated a lot of hard-won opinions and very few of them are written down. This site fixes that.&lt;/p&gt;
&lt;h2&gt;What to expect&lt;/h2&gt;
&lt;p&gt;Posts will fall into a few recurring areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Platform engineering and DevEx&lt;/strong&gt; — building internal platforms engineers actually choose to use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud governance and FinOps&lt;/strong&gt; — guardrails that scale, and spend that maps to value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resilience&lt;/strong&gt; — regionless HA/DR, failure domains, and recovery you have genuinely tested.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI platforms&lt;/strong&gt; — MCP, governed gateways and treating AI as a platform capability rather than a pile of experiments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How I&#39;ll write&lt;/h2&gt;
&lt;p&gt;Practical over theoretical. Every post should leave you with something you can apply on Monday: a decision framework, a checklist, or a mistake you don&#39;t have to make yourself.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The best platform is the one nobody has to think about.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ zion --status
all systems nominal
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;More soon.&lt;/p&gt;
</content>
  </entry>
</feed>