<?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: Sucheta Dhiman</title>
    <description>The latest articles on DEV Community by Sucheta Dhiman (@suchetadhiman).</description>
    <link>https://dev.to/suchetadhiman</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%2F3238698%2F2b82d9a2-0ada-4e8e-ac83-3e6a5f683e44.jpg</url>
      <title>DEV Community: Sucheta Dhiman</title>
      <link>https://dev.to/suchetadhiman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suchetadhiman"/>
    <language>en</language>
    <item>
      <title>Multi-Provider Fallbacks and Failover: Designing for LLM High Availability</title>
      <dc:creator>Sucheta Dhiman</dc:creator>
      <pubDate>Thu, 12 Nov 2026 04:54:26 +0000</pubDate>
      <link>https://dev.to/suchetadhiman/multi-provider-fallbacks-and-failover-designing-for-llm-high-availability-dco</link>
      <guid>https://dev.to/suchetadhiman/multi-provider-fallbacks-and-failover-designing-for-llm-high-availability-dco</guid>
      <description>&lt;p&gt;ny application that depends on a single large language model provider inherits that provider's bad days. Providers have outages, impose rate limits during traffic spikes, return transient server errors, and occasionally slow to a crawl under load. If your architecture has exactly one path to a model, every one of those events becomes your outage too. High availability for LLM applications is the discipline of making sure that a problem with one model or provider does not become a problem for your users.&lt;/p&gt;

&lt;p&gt;The tools for this are retries, fallbacks, health detection, and ordered failover chains. They are often lumped together under "resilience," but they are distinct mechanisms that solve distinct problems, and using them well means understanding where each one applies. This article walks through those mechanisms and assembles them into a reference failover design. We use the configuration model of an &lt;a href="https://www.truefoundry.com/ai-gateway" rel="noopener noreferrer"&gt;LLM gateway&lt;/a&gt; as the running example, since a gateway is the natural place to implement failover once rather than in every application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retries and fallbacks are not the same thing
&lt;/h3&gt;

&lt;p&gt;The first distinction to get right is between a retry and a fallback, because they respond to different kinds of failure.&lt;/p&gt;

&lt;p&gt;A retry re-sends the request to the same target. It is the right response to a transient failure, the kind that is likely to succeed if you simply try again a moment later: a brief rate-limit, a momentary server hiccup, a connection that dropped. The target itself is fundamentally fine; the request just happened to hit a bad instant.&lt;/p&gt;

&lt;p&gt;A fallback stops retrying the current target and sends the request to a different target. It is the right response to a failure that retrying will not fix: the target is down, is persistently rejecting the request, or is returning an error that indicates a real problem rather than a transient one. Hammering a dead target with retries only adds latency before the inevitable; a fallback moves on to something that can actually answer.&lt;/p&gt;

&lt;p&gt;A well-designed system uses both in sequence. It retries a target a bounded number of times to ride out transient trouble, and if the target still will not cooperate, it falls back to the next target. The configuration below shows exactly this pattern, which we will return to throughout the article.&lt;/p&gt;

&lt;h3&gt;
  
  
  A reference failover configuration
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;routing_config:&lt;br&gt;
  type: priority-based-routing&lt;br&gt;
  load_balance_targets:&lt;br&gt;
    - target: azure/gpt-4o&lt;br&gt;
      priority: 0&lt;br&gt;
      retry_config:&lt;br&gt;
        attempts: 3&lt;br&gt;
        delay: 200&lt;br&gt;
        on_status_codes: ["429", "500", "503"]&lt;br&gt;
      fallback_status_codes: ["429", "500", "502", "503"]&lt;br&gt;
      fallback_candidate: true&lt;br&gt;
    - target: openai/gpt-4o&lt;br&gt;
      priority: 1&lt;br&gt;
      retry_config:&lt;br&gt;
        attempts: 2&lt;br&gt;
        delay: 100&lt;br&gt;
      fallback_status_codes: ["429"]&lt;br&gt;
      fallback_candidate: true&lt;br&gt;
    - target: anthropic/claude-sonnet&lt;br&gt;
      priority: 2&lt;br&gt;
      fallback_candidate: false&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This single block encodes a complete failover policy across three providers. Read top to bottom, it says: prefer the Azure deployment; retry it up to three times on specific transient codes; if it still fails on a fallback-worthy code, move to the OpenAI deployment; retry that twice; and finally, if needed, fall through to the Anthropic deployment. The rest of the article explains each piece.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retry configuration in detail
&lt;/h3&gt;

&lt;p&gt;Retries are configured per target through retry_config, and the defaults are deliberately cautious. By default a target gets zero retry attempts, with a 100-millisecond delay between attempts, retrying on the status codes 429, 500, 502, and 503. Zero attempts as a default means retries are opt-in: you turn them on where you want them, rather than having the system silently retry everywhere.&lt;/p&gt;

&lt;p&gt;Each part of the configuration controls one aspect of retry behavior. The attempts field sets how many times to retry the same target. The delay field sets the pause between attempts in milliseconds, which gives a struggling target a brief moment to recover rather than slamming it instantly. The on_status_codes field restricts retries to the response codes where retrying makes sense, typically rate-limit and server-error codes.&lt;/p&gt;

&lt;p&gt;In the reference configuration, the Azure target retries up to three times with a 200-millisecond delay, but only on 429, 500, and 503. That last restriction matters: there is no point retrying a 404, because the resource will still be missing on the second attempt. Choosing which codes to retry is really a judgment about which failures are transient, and encoding that judgment in on_status_codes keeps the system from wasting time on errors that retrying cannot fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fallback configuration in detail
&lt;/h3&gt;

&lt;p&gt;Fallbacks are governed by two settings. The first, fallback_status_codes, defines the response codes that should stop retries on the current target and trigger a move to a different target. Its defaults are 401, 403, 404, 408, 429, 500, 502, and 503, a broad set covering authentication and authorization failures, missing resources, timeouts, rate limits, and server errors. When a target returns one of these codes, the gateway stops working on it and fails over.&lt;/p&gt;

&lt;p&gt;The second setting, fallback_candidate, controls whether a target is allowed to receive fallback traffic from other targets. It defaults to true, meaning a target can serve as a backup for others. Setting it to false, as the reference configuration does for the Anthropic target, is worth pausing on. In that configuration the Anthropic target has fallback_candidate: false, which means it is the lowest-priority target and will be reached through the ordinary priority chain, but it will not be pulled in as a fallback destination outside that chain. This lets you keep a target in the lineup while controlling precisely when it is used.&lt;/p&gt;

&lt;p&gt;Together these two settings separate two questions that are easy to conflate: when should I give up on a target, answered by fallback_status_codes, and which targets am I willing to fail over to, answered by fallback_candidate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Health detection and automatic recovery
&lt;/h3&gt;

&lt;p&gt;Retries and fallbacks handle individual failed requests. Health detection handles the pattern across many requests, so the gateway can stop sending traffic to a target that is reliably failing rather than discovering the failure one request at a time.&lt;/p&gt;

&lt;p&gt;The rule is concrete: a target is marked unhealthy after it accumulates at least two failures within a two-minute window. Once unhealthy, the target is moved to the end of the line and is used only if the healthy targets fail first. It is not removed entirely, because it might recover, but it stops being a preferred destination. This shields users from a degraded target: instead of a stream of requests each independently discovering the target is down, the gateway learns the lesson once and routes around it.&lt;/p&gt;

&lt;p&gt;Recovery is automatic. You do not have to intervene or flip a switch to bring a target back; as it starts succeeding again, the gateway restores it to normal rotation. This matters operationally because provider problems are usually temporary, and a system that required manual re-enablement would leave you either babysitting it or running permanently degraded after every blip.&lt;/p&gt;

&lt;h3&gt;
  
  
  SLA cutoffs: failing over on slowness
&lt;/h3&gt;

&lt;p&gt;Not every failure is an error code. A target can accept your request, return a valid response, and still fail you by being far too slow. Priority-based routing addresses this with SLA cutoffs, which let you mark a target unhealthy when its speed crosses a threshold you set on time-per-output-token or time-to-first-token.&lt;/p&gt;

&lt;p&gt;This extends the notion of health from "is it returning errors" to "is it meeting my latency requirements." For an interactive application, a model that takes many seconds to produce its first token may be effectively unusable even though it never errors. An SLA cutoff lets the gateway treat that slowness as a trigger to fail over to a faster target, rather than forcing users to wait on a technically-successful but practically-useless response.&lt;/p&gt;

&lt;h3&gt;
  
  
  Assembling the reference design
&lt;/h3&gt;

&lt;p&gt;Putting the pieces together, a robust failover design built on priority-based routing works like this. Requests go to the healthy target with the lowest priority number, where 0 is highest. That target retries on transient codes to absorb brief trouble. If it returns a fallback-worthy code, the gateway stops and moves to the next priority. Targets that repeatedly fail, or that violate an SLA cutoff, are marked unhealthy, pushed to the end of the line, and recovered automatically when they improve. The fallback_candidate flag lets you decide which targets may serve as backups beyond their place in the chain.&lt;/p&gt;

&lt;p&gt;The result is layered defense. Transient failures are absorbed by retries without the user noticing. Persistent single-target failures are handled by fallback to the next provider. Recurring failures are handled by health detection, which stops wasting requests on a known-bad target. And slowness, not just errors, is handled by SLA cutoffs. No single provider's bad day reaches your users, because at every layer there is a defined next step. Designing for high availability, in the end, is just making sure there is always a next step and that the system takes it without you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A retry re-sends the request to the same target for transient failures; a fallback moves to a different target when retrying will not help. Use both in sequence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Retries are configured per target with retry_config; defaults are cautious (0 attempts, 100ms delay, retrying on 429/500/502/503), so retries are opt-in and limited to codes worth retrying via on_status_codes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fallbacks use fallback_status_codes (defaults 401/403/404/408/429/500/502/503) to decide when to abandon a target, and fallback_candidate (default true) to decide which targets may receive fallback traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Health detection marks a target unhealthy after at least two failures within two minutes, moves it to the end of the line, uses it only if healthy targets fail, and recovers it automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SLA cutoffs extend health to speed, marking a target unhealthy when time-per-output-token or time-to-first-token crosses a threshold, so you can fail over on slowness, not just errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A priority-based chain combining retries, fallbacks, health detection, and SLA cutoffs gives layered defense so that no single provider's outage reaches your users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>LLM Gateway Reference Architecture For The Enterprise</title>
      <dc:creator>Sucheta Dhiman</dc:creator>
      <pubDate>Tue, 03 Nov 2026 05:23:44 +0000</pubDate>
      <link>https://dev.to/suchetadhiman/llm-gateway-reference-architecture-for-the-enterprise-3418</link>
      <guid>https://dev.to/suchetadhiman/llm-gateway-reference-architecture-for-the-enterprise-3418</guid>
      <description>&lt;p&gt;A single developer calling a model through a gateway needs little more than a base URL and a key. An enterprise running hundreds of AI features across many teams, regions, and regulatory regimes needs something more carefully structured. This article lays out a reference architecture for deploying an LLM gateway at enterprise scale, walking through the split between control and data planes, regional deployment, authentication and access control, budgets, guardrails, observability, and the deployment topologies that determine where your data lives. TrueFoundry is used throughout as the concrete example, shown to make the architecture tangible rather than to make a pitch.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Organizing Principle: Split the Control Plane from the Data Plane
&lt;/h3&gt;

&lt;p&gt;The most important architectural decision in an enterprise gateway is to separate the control plane from the data plane. These are two distinct components with two distinct jobs, and keeping them apart is what lets the system be both centrally governed and fast at the edge.&lt;/p&gt;

&lt;p&gt;The control plane is the centralized brain. It holds configuration: which models exist, how routing is defined, who has access to what, what budgets and rate limits apply, which guardrails are active. It is where administrators and platform teams make decisions. It is not in the path of any model request.&lt;/p&gt;

&lt;p&gt;The data plane, also called the gateway plane, is the only component that sits in the request path. When an application calls the gateway, it is the data plane that receives the request, applies routing, meters tokens, enforces limits, and forwards to the provider. Crucially, the data plane does not phone home to the control plane on every request. It reads its configuration and cache from memory, so the per-request work stays local and fast. This is the architectural reason a gateway can add typical latency overhead under 5 milliseconds, internally around 3 to 4 milliseconds, at throughput on the order of 200 to 250 requests per second per single CPU: the in-path component is lean, and the heavy coordination happens out of band.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regional Data Planes and Data Residency
&lt;/h3&gt;

&lt;p&gt;Because the data plane is the only thing in the request path and reads its configuration from memory, you can deploy it regionally. An enterprise with users and workloads in several regions can run a data plane close to each one, so requests do not have to cross the globe to reach a gateway. Each regional data plane pulls the same centrally managed configuration from the control plane, which means policy is consistent everywhere while traffic stays local.&lt;/p&gt;

&lt;p&gt;This regional model is also the foundation of data residency control. Where the data plane runs, and where it is allowed to send request and response data, is something the architecture lets you constrain. That matters enormously for organizations bound by rules about where personal or regulated data may be processed and stored.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Request's Journey Through The Architecture
&lt;/h3&gt;

&lt;p&gt;It helps to trace a single request end to end. An application, authenticated with its credential, sends an OpenAI-compatible chat-completions call to the regional data plane nearest it. The data plane validates the credential and checks the caller's access rights and rate limits, drawing on configuration it already holds in memory. It resolves the requested model or virtual model group, applies the routing policy to select a target, and if guardrails are configured, inspects the prompt before it leaves. It forwards the request to the chosen provider, streaming the response back as it arrives, and as the stream flows it accumulates token usage. On completion it records that usage against the relevant team, application, and user for budget attribution and observability, applies any response-side guardrails, and returns the result. If the chosen target had failed, the data plane would have transparently retried against a fallback candidate. Throughout, the control plane was never in the path; it had already supplied the configuration that made every one of these decisions possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication and Role-based Access Control
&lt;/h3&gt;

&lt;p&gt;At enterprise scale, credentials are not an afterthought. The architecture distinguishes two credential types by purpose. A Personal Access Token (PAT) represents a human and suits development and interactive use. A Virtual Account Token (VAT) represents an application or service and suits production workloads. Keeping these distinct means a departing employee's personal token can be revoked without taking down production services, and a compromised application token can be rotated without disturbing developers.&lt;/p&gt;

&lt;p&gt;Around those credentials sits role-based access control. Access to models, the ability to change routing, the authority to set budgets, the visibility of usage data: all of these can be granted by role rather than handed out uniformly. A platform team might administer configuration while individual product teams can only call the models they have been granted and view their own usage. This is how a single shared gateway serves many teams without any team being able to affect another.&lt;/p&gt;

&lt;h3&gt;
  
  
  Budgets, Rate Limits, and Guardrails as Policy
&lt;/h3&gt;

&lt;p&gt;Because every request flows through the data plane and its usage is metered in tokens, the control plane can express spend and protection as policy. Budgets can be set per team, per application, or per user, and enforced so that once exhausted, further requests are refused rather than silently accruing cost. Rate limits cap request or token throughput per consumer, protecting shared provider quotas from any single noisy service. Guardrails, applied in the data plane where the prompt and response text is visible, screen content on the way in and on the way out. The important architectural point is that all three are defined centrally in the control plane and enforced locally in each data plane, so a policy written once applies everywhere the gateway runs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observability
&lt;/h3&gt;

&lt;p&gt;Centralizing traffic through the data plane makes the whole fleet observable from one place. Request volumes, latencies, error rates, token consumption, and cost can be broken down by model, team, and application. For an enterprise this is both an operational necessity, letting platform teams spot a failing provider or a runaway workload, and a governance necessity, letting finance and compliance answer who spent what and which models handled which traffic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment Topologies and Where Data Lives
&lt;/h3&gt;

&lt;p&gt;The same architecture supports several deployment topologies, and the choice among them is largely a choice about where your request and response data resides. There are four to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SaaS.&lt;/strong&gt; The gateway is operated for you, the simplest option to run, with the base URL on SaaS being &lt;a href="https://gateway.truefoundry.ai" rel="noopener noreferrer"&gt;https://gateway.truefoundry.ai&lt;/a&gt;.
-** Hybrid.** The control plane is managed for you, but request and response data is kept in your own object storage, so the sensitive payloads never leave infrastructure you control while you still get centralized management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted.&lt;/strong&gt; You run the components in your own environment end to end.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped.&lt;/strong&gt; For the most restrictive environments, the system runs with no external connectivity at all.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These topologies exist precisely because enterprises differ in how much they must control where data flows. A team with light requirements may happily use SaaS; a bank or a defense contractor may need self-hosted or air-gapped. On the compliance side, the platform supports SOC 2, HIPAA, GDPR, and ITAR, which maps onto the range of regulated industries these topologies are meant to serve.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Minimal Configuration to Anchor the Picture
&lt;/h3&gt;

&lt;p&gt;Even in an enterprise deployment, an application's view of the gateway stays simple, which is the point of putting all the complexity in the control plane. An application still just points the standard OpenAI client at its regional data plane endpoint and supplies its production credential. Using environment variables, that looks like this:&lt;/p&gt;

&lt;p&gt;Application-side configuration. All routing, budgets,&lt;br&gt;
access control and guardrails are defined centrally in&lt;br&gt;
the control plane, not here.&lt;/p&gt;

&lt;p&gt;export OPENAI_BASE_URL="&lt;a href="https://gateway.truefoundry.ai" rel="noopener noreferrer"&gt;https://gateway.truefoundry.ai&lt;/a&gt;"&lt;br&gt;
export OPENAI_API_KEY="your_virtual_account_token"&lt;/p&gt;

&lt;p&gt;Everything that makes the deployment enterprise-grade, the regional data planes, the RBAC, the budgets, the guardrails, the residency rules, is configured once in the control plane and enforced in each data plane. The application developer sees none of it; they see a base URL and a key. That contrast is the whole design in miniature: complexity concentrated where it can be governed, simplicity preserved where work gets done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Putting The Pieces Together
&lt;/h3&gt;

&lt;p&gt;A sound enterprise reference architecture for an LLM gateway therefore reads as a set of deliberate separations. Configuration is separated from the request path by splitting the control plane from the data plane. Latency is minimized by letting regional data planes serve requests from in-memory configuration. Governance is centralized through RBAC, budgets, rate limits, and guardrails defined once and enforced everywhere. Data residency is honored by choosing a deployment topology, from SaaS through hybrid and self-hosted to air-gapped, that places request and response data where regulation requires. And observability ties it together by making the whole fleet legible from a single vantage point. Each separation buys a specific property, and together they let one gateway serve an entire enterprise without forcing any team to trade speed for control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Separate the control plane, which holds configuration and routing centrally and stays out of the request path, from the data plane, the only in-path component, which reads config from memory for low latency.&lt;/li&gt;
&lt;li&gt;Deploy data planes regionally so requests stay local and data residency can be controlled, while all regions share one centrally managed configuration.&lt;/li&gt;
&lt;li&gt;Use distinct credentials for people (PAT) and applications (VAT), and layer role-based access control so one shared gateway safely serves many teams.&lt;/li&gt;
&lt;li&gt;Define budgets, rate limits, and prompt and response guardrails as central policy, enforced locally in every data plane.&lt;/li&gt;
&lt;li&gt;Choose a deployment topology, SaaS, hybrid, self-hosted, or air-gapped, to place request and response data where compliance regimes such as SOC 2, HIPAA, GDPR, and ITAR require.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
    <item>
      <title>Best AI FinOps Chargeback Tools in 2026</title>
      <dc:creator>Sucheta Dhiman</dc:creator>
      <pubDate>Fri, 30 Oct 2026 05:37:38 +0000</pubDate>
      <link>https://dev.to/suchetadhiman/best-ai-finops-chargeback-tools-in-2026-41aa</link>
      <guid>https://dev.to/suchetadhiman/best-ai-finops-chargeback-tools-in-2026-41aa</guid>
      <description>&lt;p&gt;FinOps has matured into a discipline with its own vocabulary: unit economics, showback, chargeback, and accountability for every dollar of cloud and AI spend. Generative AI stresses that discipline in a new way, because token consumption is volatile, fans out across providers, and rarely maps cleanly to a single cost center. A FinOps practice needs chargeback tooling that can allocate AI spend fairly and, ideally, cap it before it runs away. The tools below serve that practice from different layers of the stack, from Kubernetes infrastructure up to finance-grade cost observability, and the question of where accountability is enforced separates them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to look for in an AI FinOps chargeback tool
&lt;/h2&gt;

&lt;p&gt;A FinOps-grade tool should support the full showback-to-chargeback journey: fair allocation of shared and committed cost, defensible rules finance can stand behind, and reporting that executives trust. For AI specifically, it must handle token-level consumption, not just infrastructure. Ask whether the tool can allocate GPU and compute cost as well as per-request model spend, and whether it tracks consumption per team, app, and user. The decisive differentiator is control: does the tool merely allocate cost that has already occurred, or can it enforce a budget in real time so a consumer cannot blow past its allocation?&lt;/p&gt;

&lt;h2&gt;
  
  
  The best AI FinOps chargeback tools in 2026
&lt;/h2&gt;

&lt;h3&gt;
  
  
  TrueFoundry
&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%2Flbjuht83ehl61v0pmau2.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%2Flbjuht83ehl61v0pmau2.png" alt=" " width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TrueFoundry leads because it makes chargeback a native, real-time control rather than a monthly reconciliation. Its AI Gateway performs per-consumer token accounting inside the request path, tracking spend by team, app, and user as each call executes, and it enforces budgets inline so an allocation becomes an actual limit, not just a line in a report. That turns a core FinOps principle, accountability, into something the system upholds automatically. The gateway produces unified cost, latency, and error metrics by model, team, and user, and TrueFoundry reports that its auto-routing is roughly 69% cheaper and 1.9x faster than an all-frontier setup by directing each request to the most cost-effective capable model. Metrics export via OTLP or Prometheus into existing FinOps dashboards, and you can review the &lt;a href="https://www.truefoundry.com/ai-gateway" rel="noopener noreferrer"&gt;AI gateway&lt;/a&gt; directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The honest trade-off:&lt;/strong&gt; it governs AI traffic it brokers, so pure Kubernetes or broad cloud chargeback still belongs to an infrastructure-level tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finout
&lt;/h3&gt;

&lt;p&gt;Finout is a mature cost observability and chargeback platform whose MegaBill unifies spend from many sources into one allocatable view built for finance. Its strength is flexible, defensible chargeback: distributing shared, committed, and discounted cost across business units with rules a finance team can audit and explain. For organizations formalizing a FinOps practice, that rigor is valuable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The limitation:&lt;/strong&gt; Finout assembles and allocates cost from billing and usage feeds after consumption, so it is an excellent post-hoc chargeback engine but does not stand in the AI request path to cap spend as it happens.&lt;/p&gt;

&lt;h3&gt;
  
  
  CloudZero
&lt;/h3&gt;

&lt;p&gt;CloudZero brings an engineering-led, unit-economics approach to FinOps, mapping spend to business drivers like cost per customer or per feature, with growing AI and LLM coverage. Its strength is making cost meaningful to the teams that create it, which drives real accountability culture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The limitation:&lt;/strong&gt; CloudZero is cloud-bill-centric: it ingests and models billing data to attribute spend, so its chargeback is analytical and retrospective. It explains and allocates AI cost well, but it does not enforce a budget inline, leaving prevention to process and human intervention rather than the system itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kubecost
&lt;/h3&gt;

&lt;p&gt;Kubecost is the natural choice for FinOps teams whose AI runs on Kubernetes, offering detailed cost allocation across namespaces, workloads, and increasingly GPU resources. Its strength is granular, infrastructure-level visibility into the clusters that host self-hosted models and training jobs, which is exactly where a lot of AI compute cost lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The limitation:&lt;/strong&gt; scope. Kubecost sees the Kubernetes layer, not the per-request token spend hitting external provider APIs. For an estate that mixes self-hosted and third-party models, it covers the infrastructure half well but leaves the API-consumption half to another tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The verdict
&lt;/h2&gt;

&lt;p&gt;Finout, CloudZero, and Kubecost each strengthen a FinOps practice: finance-grade chargeback, unit economics, and Kubernetes cost allocation respectively. All three allocate cost that has already been spent, which is essential for reporting but powerless to prevent overruns. TrueFoundry adds the missing control by accounting for token spend per consumer in real time and enforcing budgets inside the gateway, so chargeback limits are upheld as traffic flows. For a FinOps practice that wants AI accountability to be live rather than retrospective, TrueFoundry is the strongest pick in 2026, paired with an infrastructure tool like Kubecost where self-hosted compute dominates.&lt;/p&gt;

</description>
      <category>finops</category>
    </item>
    <item>
      <title>Why Every Enterprise Running AI Agents Needs an Agent Gateway</title>
      <dc:creator>Sucheta Dhiman</dc:creator>
      <pubDate>Fri, 17 Jul 2026 06:25:17 +0000</pubDate>
      <link>https://dev.to/suchetadhiman/why-every-enterprise-running-ai-agents-needs-an-agent-gateway-3lg3</link>
      <guid>https://dev.to/suchetadhiman/why-every-enterprise-running-ai-agents-needs-an-agent-gateway-3lg3</guid>
      <description>&lt;p&gt;The first AI agent inside a company is a project. The twentieth one is a governance problem.&lt;/p&gt;

&lt;p&gt;By the time an organization has agents running support triage, sales research, code review, and internal search — each one built by a different team on a different framework a familiar pattern sets in. Nobody has a complete list of which agents even exist. There's no consistent way to control who can invoke them. Traffic and cost per agent are basically invisible. And when an agent does something wrong, the trace of what happened is scattered across whatever logging each individual team happened to bolt on. An &lt;a href="https://www.truefoundry.com/agent-gateway" rel="noopener noreferrer"&gt;agent gateway&lt;/a&gt; is the answer to that sprawl: one entry point through which every agent is called, governed, and observed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is an Agent Gateway? Definition and Overview
&lt;/h2&gt;

&lt;p&gt;An agent gateway is a control layer that exposes an organization's AI agents through a single endpoint and applies consistent policy to every invocation. Applications and users call the gateway; the gateway routes the request to the right agent, checks whether the caller is allowed to use it, and records the interaction. It does for agents what an API gateway does for services and what an &lt;a href="https://www.truefoundry.com/ai-gateway" rel="noopener noreferrer"&gt;AI gateway&lt;/a&gt; does for models — it turns a scattered collection of endpoints into one governed surface.&lt;/p&gt;

&lt;p&gt;The concept is newer than its model-layer cousin, and the market reflects that. Search interest is real but still early, which is exactly what you'd expect from a category most teams haven't formally named yet, even though they're clearly running into the underlying problem already. Vendors have started shipping this capability, sometimes as a standalone product and sometimes as an extension bolted onto an existing AI gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Traditional Gateways Can't Govern AI Agents
&lt;/h2&gt;

&lt;p&gt;You might reasonably ask why existing gateways don't just cover this already. The reason is that agents behave differently from both plain API calls and single model calls, and those differences matter enormously for governance.&lt;/p&gt;

&lt;p&gt;An agent isn't a stateless function. It reasons, calls tools, calls other models, and sometimes calls other agents — all within a single logical request. That means the unit you actually need to govern isn't one HTTP call but an entire chain of actions taken on someone's behalf. An agent gateway has to reason about the agent as an actor, not merely as an endpoint.&lt;/p&gt;

&lt;p&gt;Identity gets more complicated too. When a user triggers an agent that then calls a tool, there are at least two identities in play at once: the user, and the agent acting on their behalf. Access decisions have to account for both. Granting an agent broad permissions simply because it authenticated cleanly — without checking whether the human behind it should actually have that access — is exactly how agents turn into a privilege-escalation path. Handling this well is the core of what TrueFoundry describes in its &lt;a href="https://www.truefoundry.com/docs/ai-gateway/agents/agent-registry" rel="noopener noreferrer"&gt;agent identity and governance documentation&lt;/a&gt;, where the caller can be an agent, a user, or both at once, and policy accounts for all of them.&lt;/p&gt;

&lt;p&gt;Cost and reliability shift too. A single user request to an agent can fan out into dozens of model and tool calls, so cost attribution has to roll up the entire chain, and a failure anywhere along that chain can strand the whole request. Trying to govern this agent by agent doesn't scale. Governing it at the gateway does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Gateway vs AI Gateway vs Agent Router: Key Differences
&lt;/h2&gt;

&lt;p&gt;These terms overlap enough to cause real confusion, so it's worth separating them clearly.&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%2Fvmja3f4mrbx5yiz8n3zz.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%2Fvmja3f4mrbx5yiz8n3zz.png" alt=" " width="799" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An agent router is a component, not a competing category. Routing is just the part of an agent gateway that decides which agent should handle a given request, sometimes based on the task, sometimes on load or cost. You can build routing without full governance, but a router with no access control or observability behind it is only doing part of the job. In most production setups, the router actually lives inside the gateway rather than sitting beside it.&lt;/p&gt;

&lt;p&gt;The cleanest way to think about it: the AI gateway governs models, the &lt;a href="https://www.truefoundry.com/mcp-gateway" rel="noopener noreferrer"&gt;MCP gateway&lt;/a&gt; governs tools, and the agent gateway governs agents. Mature platforms increasingly offer all three as one control plane, so a request flowing from user to agent to tool to model is governed and traced end to end — instead of crossing three separately unmanaged boundaries along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Does an Agent Gateway Do? Core Capabilities Explained
&lt;/h2&gt;

&lt;p&gt;Strip away the positioning and an agent gateway really comes down to four jobs.&lt;/p&gt;

&lt;p&gt;It provides a single invocation endpoint, so any application can call any registered agent through one interface and one credential, no matter what framework the agent was built on — LangGraph, CrewAI, AutoGen, or something fully custom.&lt;/p&gt;

&lt;p&gt;It enforces access control over who can invoke which agent, and under what identity, so a customer-facing agent and an internal finance agent don't end up sharing the same open door.&lt;/p&gt;

&lt;p&gt;It records observability data for every single invocation: which agent ran, what it called, how long it took, what it cost, and what came back. That's the difference between actually debugging an agent and just guessing about it.&lt;/p&gt;

&lt;p&gt;And it applies guardrails and limits — rate limits, budgets, content policies — right at the point of invocation, so those rules don't depend on every individual agent team remembering to implement them on their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Choose an Agent Gateway: Key Features to Evaluate
&lt;/h2&gt;

&lt;p&gt;If you're evaluating an agent gateway, or trying to figure out whether a platform's "agent-layer" features are real or just marketing, a few questions cut straight through the noise.&lt;/p&gt;

&lt;p&gt;Ask how it handles combined identity — the user-plus-agent case. This is the single most important design question, and the easiest one to get wrong. If a product can't clearly explain how a tool call made by an agent on a user's behalf gets authorized, the governance underneath it is probably thin.&lt;/p&gt;

&lt;p&gt;Ask what frameworks it actually supports. The entire point is to unify agents built differently, so a gateway that only works with one framework just recreates the silo it was supposed to remove.&lt;/p&gt;

&lt;p&gt;Ask about tracing depth. Chain-level visibility — not just a single request log — is what actually lets you understand a multi-step agent run. Traces should follow the request through every model and tool hop it makes.&lt;/p&gt;

&lt;p&gt;And ask whether it integrates with the model and tool layers you already govern. An agent gateway that sits apart from your AI gateway and MCP layer just leaves you reconciling three separate systems by hand. One that shares the same control plane — as &lt;a href="https://www.truefoundry.com/blog/agent-gateway" rel="noopener noreferrer"&gt;TrueFoundry's agent gateway&lt;/a&gt; does — lets one policy and one audit trail cover the full path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Gateway FAQ&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Q: What is an Agent Gateway?
&lt;/h2&gt;

&lt;p&gt;A: An agent gateway is a control layer that exposes an organization's AI agents through a single endpoint and applies consistent access control, observability, and guardrails to every invocation. It lets any application call any registered agent through one interface, while giving platform teams central governance over all of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q: What is the difference between an agent gateway and an AI gateway?
&lt;/h2&gt;

&lt;p&gt;A: An AI gateway governs calls to models. An agent gateway governs calls to agents — actors that reason and call tools and models on their own. Because a single agent invocation can fan out into many downstream calls, the agent gateway governs a whole chain of actions rather than one isolated request. Many platforms now offer both as a single unified control plane.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q: Is an agent router the same thing as an agent gateway?
&lt;/h2&gt;

&lt;p&gt;A: No. An agent router chooses which agent handles a given request. That routing is just one function inside an agent gateway, which also enforces access control, records observability data, and applies guardrails. A router by itself doesn't govern anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q: How does an agent gateway handle identity for AI agents?
&lt;/h2&gt;

&lt;p&gt;A: It distinguishes the agent's own identity from the identity of the user the agent is acting for, and makes access decisions using both together. This stops an agent from inheriting broad access just because it authenticated successfully, and it keeps a clear record of who was actually behind each action taken.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Your Enterprise Needs an Agent Gateway
&lt;/h2&gt;

&lt;p&gt;Agents are multiplying faster than the governance built around them, and that gap shows up as duplicated work, invisible cost, and audit trails nobody can piece back together. An &lt;a href="https://www.truefoundry.com/agent-gateway" rel="noopener noreferrer"&gt;agent gateway&lt;/a&gt; closes that gap by giving every agent one front door and one consistent set of rules. If your organization is past its first few agents and heading toward its twentieth, that front door isn't a nice-to-have. It's the difference between running an agent platform and managing an agent mess.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>apigateway</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Agent Gateway: What Happens When You Have Twenty Agents and No Front Door</title>
      <dc:creator>Sucheta Dhiman</dc:creator>
      <pubDate>Wed, 15 Jul 2026 06:06:34 +0000</pubDate>
      <link>https://dev.to/suchetadhiman/the-agent-gateway-what-happens-when-you-have-twenty-agents-and-no-front-door-3d7g</link>
      <guid>https://dev.to/suchetadhiman/the-agent-gateway-what-happens-when-you-have-twenty-agents-and-no-front-door-3d7g</guid>
      <description>&lt;p&gt;The first AI agent inside a company is a project. The twentieth is a governance problem.&lt;/p&gt;

&lt;p&gt;By the time an organization has agents for support triage, sales research, code review, and internal search, each built by a different team on a different framework, a familiar pattern sets in. Nobody has a full list of which agents exist. There is no consistent way to control who can invoke them. Traffic and cost per agent are invisible. And when an agent does something wrong, the trace of what it did is scattered across whatever logging each team happened to add. An agent gateway is the answer to that sprawl: a single entry point through which every agent is called, governed, and observed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is An Agent Gateway?
&lt;/h2&gt;

&lt;p&gt;An agent gateway is a control layer that exposes an organization’s AI agents through one endpoint and applies consistent policy to every invocation. Applications and users call the gateway; the gateway routes the request to the right agent, checks that the caller is allowed to use it, and records the interaction. It does for agents what an API gateway does for services and what an AI gateway does for models: it turns a scattered collection of endpoints into one governed surface.&lt;/p&gt;

&lt;p&gt;The concept is newer than its model-layer cousin, and the market reflects that. Search interest is real but early, which is what you would expect for a category that most teams have not yet named even though they clearly have the problem. Vendors have started shipping the capability, sometimes as a distinct product and sometimes as an extension of an existing AI gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Agents Break The Old Assumptions
&lt;/h2&gt;

&lt;p&gt;You might reasonably ask why existing gateways do not just cover this. The reason is that agents behave differently from both plain API calls and single model calls, and those differences matter for governance.&lt;/p&gt;

&lt;p&gt;An agent is not a stateless function. It reasons, calls tools, calls other models, and sometimes calls other agents, all within a single logical request. That means the unit you need to govern is not one HTTP call but a whole chain of actions taken on someone’s behalf. An agent gateway has to reason about the agent as an actor, not just as an endpoint.&lt;/p&gt;

&lt;p&gt;Identity gets more complicated too. When a user triggers an agent that then calls a tool, there are at least two identities in play: the user and the agent acting for them. Access decisions have to account for both. Granting an agent broad permissions because it authenticated cleanly, without checking whether the human behind it should have that access, is how agents become a privilege-escalation path. Handling this well is the core of what TrueFoundry describes in its &lt;a href="https://www.truefoundry.com/docs/agent-platform/agent-registry/agent-identity-and-governance" rel="noopener noreferrer"&gt;agent identity and governance documentation&lt;/a&gt;, where the caller can be an agent, a user, or both at once, and policy reasons about all of them.&lt;/p&gt;

&lt;p&gt;Cost and reliability also shift. A single user request to an agent can fan out into dozens of model and tool calls, so cost attribution has to roll up an entire chain, and a failure anywhere in that chain can strand the whole request. Governing this at each agent individually does not scale. Governing it at the gateway does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Gateway vs AI Gateway vs Agent Router
&lt;/h2&gt;

&lt;p&gt;These terms overlap enough to cause confusion, so it helps to separate them.&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%2Flebsllagx5c2vxyxouas.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%2Flebsllagx5c2vxyxouas.png" alt=" " width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An agent router is a component, not a competing category. Routing is the part of an agent gateway that decides which agent should handle a given request, sometimes based on the task, sometimes on load or cost. You can have routing without full governance, but a router without access control and observability is only doing part of the job. In most production setups the router lives inside the gateway rather than beside it.&lt;/p&gt;

&lt;p&gt;The cleaner way to think about it: the AI gateway governs models, the MCP gateway governs tools, and the agent gateway governs agents. Mature platforms increasingly offer all three as one control plane so that a request flowing from user to agent to tool to model is governed and traced end to end, rather than crossing three unmanaged boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  What An Agent Gateway Actually Does
&lt;/h2&gt;

&lt;p&gt;Strip away the positioning and an agent gateway comes down to four jobs.&lt;/p&gt;

&lt;p&gt;It provides a single invocation endpoint, so any application can call any registered agent through one interface and one credential, regardless of what framework the agent was built on, whether that is LangGraph, CrewAI, AutoGen, or something custom.&lt;/p&gt;

&lt;p&gt;It enforces access control on who can invoke which agent, and under what identity, so that a customer-facing agent and an internal finance agent do not share the same open door.&lt;/p&gt;

&lt;p&gt;It records observability data for every invocation: which agent ran, what it called, how long it took, what it cost, and what came back. This is the difference between debugging an agent and guessing about it.&lt;/p&gt;

&lt;p&gt;And it applies guardrails and limits, including rate limits, budgets, and content policies, at the point of invocation, so the rules do not depend on each agent team remembering to implement them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to look for&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are evaluating an agent gateway, or evaluating whether a platform’s agent-layer features are real, a few questions cut through the marketing.&lt;/p&gt;

&lt;p&gt;Ask how it handles combined identity, the user-plus-agent case. This is the single most important design question and the easiest to get wrong. If the product cannot clearly explain how a tool call made by an agent on behalf of a user is authorized, the governance is thin.&lt;/p&gt;

&lt;p&gt;Ask what frameworks it supports. The whole point is to unify agents built differently, so a gateway that only works with one framework recreates the silo it was meant to remove.&lt;/p&gt;

&lt;p&gt;Ask about tracing depth. Chain-level visibility, not just a single request log, is what lets you understand a multi-step agent run. Traces should follow the request through every model and tool hop.&lt;/p&gt;

&lt;p&gt;And ask whether it integrates with the model and tool layers you already govern. An agent gateway that stands apart from your &lt;a href="https://www.truefoundry.com/ai-gateway" rel="noopener noreferrer"&gt;AI Gateway&lt;/a&gt; and MCP layer leaves you reconciling three systems. One that shares the same control plane, as TrueFoundry’s &lt;a href="https://www.truefoundry.com/agent-gateway" rel="noopener noreferrer"&gt;agent gateway&lt;/a&gt; does, lets one policy and one audit trail cover the full path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is an agent gateway?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: An agent gateway is a control layer that exposes an organization’s AI agents through a single endpoint and applies consistent access control, observability, and guardrails to every invocation. It lets any application call any registered agent through one interface while giving platform teams central governance over all of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the Difference between an Agent Gateway and an AI Gateway?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: An AI gateway governs calls to models. An agent gateway governs calls to agents, which are actors that reason and call tools and models themselves. Because an agent invocation can fan out into many downstream calls, the agent gateway governs a chain of actions rather than a single request. Many platforms offer both as one control plane.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is an agent router the same as an Agent Gateway?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: No. An agent router chooses which agent handles a request. That routing is one function of an agent gateway, which also enforces access control, records observability, and applies guardrails. A router alone does not govern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How does an Agent Gateway handle identity for AI Agents?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It distinguishes the agent’s identity from the identity of the user the agent acts for, and makes access decisions using both. This prevents an agent from inheriting broad access simply because it authenticated, and it keeps a clear record of who was actually behind each action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agents are multiplying faster than the governance around them, and the gap shows up as duplicated work, invisible cost, and audit trails nobody can assemble. An agent gateway closes that gap by giving every agent one front door and one set of rules. If your organization is past its first few agents and heading toward its twentieth, the front door is not a nice-to-have. It is the difference between an agent platform and an agent mess.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>apigateway</category>
    </item>
  </channel>
</rss>
