Xzero UI
Pro library

Multi-region failoverPro

Animated multi-region failover on a 2.5D stage: users stream requests through a global load balancer to two regions; the primary degrades, fails three health checks, traffic shifts smoothly to the healthy region, then it recovers, passes three checks and traffic ramps back to an even split.

$ pnpm dlx shadcn@4.23.0 add @xzero-ui-pro/multi-region-failover
Live · keyboard ready

When to use

When not to use

Installation

Register both Xzero UI namespaces in your project's components.json:

{
  "registries": {
    "@xzero-ui": "https://mcp.xzero.co.uk/r/{name}.json",
    "@xzero-ui-pro": "https://mcp.xzero.co.uk/r/pro/{name}.json"
  }
}
npx shadcn@4.23.0 add @xzero-ui-pro/multi-region-failover

Install xzero-foundation once, and import @/components/xzero/foundation.css in your app root. No Xzero token is used by this snapshot. For sample portraits, photos, fonts, or logos, download https://mcp.xzero.co.uk/install-assets.mjs and run node xzero-install-assets.mjs <receiving-project>.

Usage

import { MultiRegionFailover } from "@/components/xzero/multi-region-failover/multi-region-failover";

export function FailoverSection() {
  return (
    <MultiRegionFailover
      hostname="api.acme.dev"
      requestsPerSecond={12000}
      nodes={{
        primary: { label: "US East", meta: "us-east-1" },
        secondary: { label: "EU West", meta: "eu-west-1" },
      }}
    />
  );
}

API reference

MultiRegionFailover

An animated multi-region failover on a layered 2.5D stage. Users send a steady stream of requests to a global load balancer that splits them between two regions, each a platform of six instances. The instances in the primary region fail one by one, requests there turn into errors and three health checks fail in a row, so the balancer marks the region unhealthy and shifts its weight smoothly to the healthy region. The primary recovers, has to pass three checks, and traffic ramps back until the split is even again. A step scrubber replays the story or jumps to any stage, and the weight bar, the dial on the balancer, error rate, requests per second, latency and status chips all update in sync.

PropTypeDefaultDescription
hostnamestring"api.acme.dev"The hostname the balancer answers for, shown under it and in the default description.
requestsPerSecondnumber12000Total requests per second from users. Each region's counter shows its share of it.
latencyMsnumber38Median latency of the primary region while the split is even. The secondary runs 4 ms slower and climbs as it takes the whole load.
nodesPartial<Record<"users" | "balancer" | "primary" | "secondary", { label?: string; meta?: string; detail?: string; icon?: string | ReactNode; color?: string }>>Users, Load balancer, US East (us-east-1), EU West (eu-west-1)Overrides per node: the name, a meta line, the hover detail and an optional mark (Simple Icons path data, an image URL or a ReactNode). The region names also label the weight split and the captions.
speednumber1Multiplies the pace. One outage and recovery cycle takes 21 seconds at 1. 0 holds still.
pausedbooleanfalseHolds the animation, easing to rest. Paused from the start, it shows the moment traffic shifts away from the unhealthy region.
accentstring–Any CSS color for the requests, lit routes, the weight dial, the split bar and the scrubber. Defaults to the theme accent. Errors and health always use the status colors.
controlsbooleantrueShows the step scrubber with a pause button. Each step is a button that jumps to that stage; arrow keys move between them.
captionbooleantrueShows the current stage title and one line that narrates it under the scrubber.
labelstring–Accessible description. Defaults to a sentence built from the hostname and the region names.
classNamestring–Class on the root figure.
styleCSSProperties–Inline styles on the root figure.

Accessibility

Motion

Responsive behavior

Performance

Notes for AI

Also in illustrations

Guidance for AI tools

Multi-region failover: Animated multi-region failover on a 2.5D stage: users stream requests through a global load balancer to two regions; the primary degrades, fails three health checks, traffic shifts smoothly to the healthy region, then it recovers, passes three checks and traffic ramps back to an even split. Follow the declared prop types and do not invent props. Keep keyboard access, reduced motion support, and both light and dark themes intact when adapting it.

Full library index: https://ui.xzero.co.uk/llms.txt

Browse all components