FabriX
The Global Compute Exchange.
FabriX is building a market and control plane for compute across providers.
Working scheduler
Real decisions. Illustrative supply.
The scheduler filters, scores and allocates against the request you choose. The infrastructure dataset is a demonstration model.
- Allocated
- 0
- Clearing
- $0/hr
- Latency
- Pending
- Carbon
- Pending
Reference network · illustrative data
- Example capacity
- 18.4M
- accelerators
- Example regions
- 247
- regions
- Modelled utilisation
- 71.0%
- of fleet
- Modelled power
- 11.4 GW
- reference network
- Carbon objective
- 92.0%
- of workloads
- Example jobs
- 142,882
- modelled
- Modelled allocation
- 1.8s
- to first node
A market for compute capacity.
The exchange will let providers publish available capacity and customers buy against a clear price. Spot, reserved and forward terms will share one market interface.
| Price | Units | Region | Cpty |
|---|---|---|---|
| $2.452 | 14,912 | Virginia | 12 |
| $2.423 | 6,528 | Frankfurt | 6 |
| $2.409 | 6,464 | Stockholm | 7 |
| $2.391 | 4,288 | Singapore | 6 |
| $2.373 | 1,664 | London | 3 |
| $2.360 | 2,752 | Virginia | 6 |
| $2.344 | 2,304 | Frankfurt | 8 |
| $2.336 | 3,136 | London | 11 |
| $2.321 | 1,664 | Singapore | 4 |
| $2.300 | 6,976 | Stockholm | 12 |
| $2.287 | 5,824 | Frankfurt | 8 |
| $2.265 | 10,304 | Virginia | 11 |
| $2.251 | 10,240 | London | 10 |
| $2.244 | 6,208 | Singapore | 5 |
| Region | 00:00 UTC | 01:00 UTC | 02:00 UTC | 03:00 UTC | 04:00 UTC | 05:00 UTC | 06:00 UTC | 07:00 UTC | 08:00 UTC | 09:00 UTC | 10:00 UTC | 11:00 UTC | 12:00 UTC | 13:00 UTC | 14:00 UTC | 15:00 UTC | 16:00 UTC | 17:00 UTC | 18:00 UTC | 19:00 UTC | 20:00 UTC | 21:00 UTC | 22:00 UTC | 23:00 UTC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Virginia | Virginia, 00:00 UTC: 19% free | Virginia, 01:00 UTC: 26% free | Virginia, 02:00 UTC: 31% free | Virginia, 03:00 UTC: 35% free | Virginia, 04:00 UTC: 38% free | Virginia, 05:00 UTC: 42% free | Virginia, 06:00 UTC: 44% free | Virginia, 07:00 UTC: 40% free | Virginia, 08:00 UTC: 47% free | Virginia, 09:00 UTC: 38% free | Virginia, 10:00 UTC: 37% free | Virginia, 11:00 UTC: 31% free | Virginia, 12:00 UTC: 33% free | Virginia, 13:00 UTC: 28% free | Virginia, 14:00 UTC: 19% free | Virginia, 15:00 UTC: 16% free | Virginia, 16:00 UTC: 9% free | Virginia, 17:00 UTC: 9% free | Virginia, 18:00 UTC: 10% free | Virginia, 19:00 UTC: 5% free | Virginia, 20:00 UTC: 6% free | Virginia, 21:00 UTC: 10% free | Virginia, 22:00 UTC: 9% free | Virginia, 23:00 UTC: 13% free |
| Oregon | Oregon, 00:00 UTC: 22% free | Oregon, 01:00 UTC: 19% free | Oregon, 02:00 UTC: 23% free | Oregon, 03:00 UTC: 30% free | Oregon, 04:00 UTC: 32% free | Oregon, 05:00 UTC: 39% free | Oregon, 06:00 UTC: 44% free | Oregon, 07:00 UTC: 48% free | Oregon, 08:00 UTC: 51% free | Oregon, 09:00 UTC: 51% free | Oregon, 10:00 UTC: 53% free | Oregon, 11:00 UTC: 52% free | Oregon, 12:00 UTC: 48% free | Oregon, 13:00 UTC: 46% free | Oregon, 14:00 UTC: 41% free | Oregon, 15:00 UTC: 42% free | Oregon, 16:00 UTC: 34% free | Oregon, 17:00 UTC: 31% free | Oregon, 18:00 UTC: 23% free | Oregon, 19:00 UTC: 26% free | Oregon, 20:00 UTC: 21% free | Oregon, 21:00 UTC: 20% free | Oregon, 22:00 UTC: 16% free | Oregon, 23:00 UTC: 20% free |
| London | London, 00:00 UTC: 38% free | London, 01:00 UTC: 40% free | London, 02:00 UTC: 42% free | London, 03:00 UTC: 39% free | London, 04:00 UTC: 38% free | London, 05:00 UTC: 38% free | London, 06:00 UTC: 35% free | London, 07:00 UTC: 26% free | London, 08:00 UTC: 19% free | London, 09:00 UTC: 15% free | London, 10:00 UTC: 14% free | London, 11:00 UTC: 11% free | London, 12:00 UTC: 6% free | London, 13:00 UTC: 2% free | London, 14:00 UTC: 5% free | London, 15:00 UTC: 4% free | London, 16:00 UTC: 9% free | London, 17:00 UTC: 6% free | London, 18:00 UTC: 12% free | London, 19:00 UTC: 15% free | London, 20:00 UTC: 21% free | London, 21:00 UTC: 24% free | London, 22:00 UTC: 36% free | London, 23:00 UTC: 32% free |
| Frankfurt | Frankfurt, 00:00 UTC: 45% free | Frankfurt, 01:00 UTC: 45% free | Frankfurt, 02:00 UTC: 49% free | Frankfurt, 03:00 UTC: 46% free | Frankfurt, 04:00 UTC: 42% free | Frankfurt, 05:00 UTC: 37% free | Frankfurt, 06:00 UTC: 34% free | Frankfurt, 07:00 UTC: 26% free | Frankfurt, 08:00 UTC: 27% free | Frankfurt, 09:00 UTC: 17% free | Frankfurt, 10:00 UTC: 13% free | Frankfurt, 11:00 UTC: 11% free | Frankfurt, 12:00 UTC: 12% free | Frankfurt, 13:00 UTC: 10% free | Frankfurt, 14:00 UTC: 9% free | Frankfurt, 15:00 UTC: 14% free | Frankfurt, 16:00 UTC: 15% free | Frankfurt, 17:00 UTC: 17% free | Frankfurt, 18:00 UTC: 22% free | Frankfurt, 19:00 UTC: 33% free | Frankfurt, 20:00 UTC: 32% free | Frankfurt, 21:00 UTC: 39% free | Frankfurt, 22:00 UTC: 45% free | Frankfurt, 23:00 UTC: 42% free |
| Warsaw | Warsaw, 00:00 UTC: 55% free | Warsaw, 01:00 UTC: 60% free | Warsaw, 02:00 UTC: 56% free | Warsaw, 03:00 UTC: 54% free | Warsaw, 04:00 UTC: 57% free | Warsaw, 05:00 UTC: 50% free | Warsaw, 06:00 UTC: 51% free | Warsaw, 07:00 UTC: 41% free | Warsaw, 08:00 UTC: 41% free | Warsaw, 09:00 UTC: 37% free | Warsaw, 10:00 UTC: 34% free | Warsaw, 11:00 UTC: 34% free | Warsaw, 12:00 UTC: 33% free | Warsaw, 13:00 UTC: 33% free | Warsaw, 14:00 UTC: 34% free | Warsaw, 15:00 UTC: 33% free | Warsaw, 16:00 UTC: 37% free | Warsaw, 17:00 UTC: 37% free | Warsaw, 18:00 UTC: 43% free | Warsaw, 19:00 UTC: 43% free | Warsaw, 20:00 UTC: 48% free | Warsaw, 21:00 UTC: 53% free | Warsaw, 22:00 UTC: 51% free | Warsaw, 23:00 UTC: 60% free |
| Stockholm | Stockholm, 00:00 UTC: 62% free | Stockholm, 01:00 UTC: 63% free | Stockholm, 02:00 UTC: 60% free | Stockholm, 03:00 UTC: 58% free | Stockholm, 04:00 UTC: 60% free | Stockholm, 05:00 UTC: 56% free | Stockholm, 06:00 UTC: 47% free | Stockholm, 07:00 UTC: 50% free | Stockholm, 08:00 UTC: 41% free | Stockholm, 09:00 UTC: 38% free | Stockholm, 10:00 UTC: 34% free | Stockholm, 11:00 UTC: 32% free | Stockholm, 12:00 UTC: 36% free | Stockholm, 13:00 UTC: 33% free | Stockholm, 14:00 UTC: 38% free | Stockholm, 15:00 UTC: 37% free | Stockholm, 16:00 UTC: 39% free | Stockholm, 17:00 UTC: 41% free | Stockholm, 18:00 UTC: 45% free | Stockholm, 19:00 UTC: 47% free | Stockholm, 20:00 UTC: 47% free | Stockholm, 21:00 UTC: 58% free | Stockholm, 22:00 UTC: 55% free | Stockholm, 23:00 UTC: 63% free |
| Dubai | Dubai, 00:00 UTC: 56% free | Dubai, 01:00 UTC: 53% free | Dubai, 02:00 UTC: 50% free | Dubai, 03:00 UTC: 41% free | Dubai, 04:00 UTC: 39% free | Dubai, 05:00 UTC: 35% free | Dubai, 06:00 UTC: 34% free | Dubai, 07:00 UTC: 31% free | Dubai, 08:00 UTC: 24% free | Dubai, 09:00 UTC: 22% free | Dubai, 10:00 UTC: 21% free | Dubai, 11:00 UTC: 27% free | Dubai, 12:00 UTC: 28% free | Dubai, 13:00 UTC: 31% free | Dubai, 14:00 UTC: 35% free | Dubai, 15:00 UTC: 37% free | Dubai, 16:00 UTC: 38% free | Dubai, 17:00 UTC: 47% free | Dubai, 18:00 UTC: 47% free | Dubai, 19:00 UTC: 47% free | Dubai, 20:00 UTC: 53% free | Dubai, 21:00 UTC: 52% free | Dubai, 22:00 UTC: 58% free | Dubai, 23:00 UTC: 56% free |
| Mumbai | Mumbai, 00:00 UTC: 42% free | Mumbai, 01:00 UTC: 33% free | Mumbai, 02:00 UTC: 29% free | Mumbai, 03:00 UTC: 29% free | Mumbai, 04:00 UTC: 24% free | Mumbai, 05:00 UTC: 15% free | Mumbai, 06:00 UTC: 14% free | Mumbai, 07:00 UTC: 8% free | Mumbai, 08:00 UTC: 8% free | Mumbai, 09:00 UTC: 7% free | Mumbai, 10:00 UTC: 10% free | Mumbai, 11:00 UTC: 10% free | Mumbai, 12:00 UTC: 10% free | Mumbai, 13:00 UTC: 18% free | Mumbai, 14:00 UTC: 22% free | Mumbai, 15:00 UTC: 27% free | Mumbai, 16:00 UTC: 31% free | Mumbai, 17:00 UTC: 36% free | Mumbai, 18:00 UTC: 41% free | Mumbai, 19:00 UTC: 44% free | Mumbai, 20:00 UTC: 42% free | Mumbai, 21:00 UTC: 45% free | Mumbai, 22:00 UTC: 44% free | Mumbai, 23:00 UTC: 39% free |
| Singapore | Singapore, 00:00 UTC: 19% free | Singapore, 01:00 UTC: 17% free | Singapore, 02:00 UTC: 6% free | Singapore, 03:00 UTC: 2% free | Singapore, 04:00 UTC: 2% free | Singapore, 05:00 UTC: 2% free | Singapore, 06:00 UTC: 2% free | Singapore, 07:00 UTC: 2% free | Singapore, 08:00 UTC: 2% free | Singapore, 09:00 UTC: 2% free | Singapore, 10:00 UTC: 2% free | Singapore, 11:00 UTC: 2% free | Singapore, 12:00 UTC: 11% free | Singapore, 13:00 UTC: 17% free | Singapore, 14:00 UTC: 17% free | Singapore, 15:00 UTC: 22% free | Singapore, 16:00 UTC: 31% free | Singapore, 17:00 UTC: 36% free | Singapore, 18:00 UTC: 38% free | Singapore, 19:00 UTC: 39% free | Singapore, 20:00 UTC: 37% free | Singapore, 21:00 UTC: 30% free | Singapore, 22:00 UTC: 32% free | Singapore, 23:00 UTC: 24% free |
| Tokyo | Tokyo, 00:00 UTC: 29% free | Tokyo, 01:00 UTC: 23% free | Tokyo, 02:00 UTC: 18% free | Tokyo, 03:00 UTC: 18% free | Tokyo, 04:00 UTC: 14% free | Tokyo, 05:00 UTC: 17% free | Tokyo, 06:00 UTC: 13% free | Tokyo, 07:00 UTC: 15% free | Tokyo, 08:00 UTC: 19% free | Tokyo, 09:00 UTC: 21% free | Tokyo, 10:00 UTC: 25% free | Tokyo, 11:00 UTC: 28% free | Tokyo, 12:00 UTC: 33% free | Tokyo, 13:00 UTC: 37% free | Tokyo, 14:00 UTC: 43% free | Tokyo, 15:00 UTC: 48% free | Tokyo, 16:00 UTC: 49% free | Tokyo, 17:00 UTC: 49% free | Tokyo, 18:00 UTC: 44% free | Tokyo, 19:00 UTC: 42% free | Tokyo, 20:00 UTC: 41% free | Tokyo, 21:00 UTC: 39% free | Tokyo, 22:00 UTC: 37% free | Tokyo, 23:00 UTC: 29% free |
| Sydney | Sydney, 00:00 UTC: 34% free | Sydney, 01:00 UTC: 35% free | Sydney, 02:00 UTC: 31% free | Sydney, 03:00 UTC: 29% free | Sydney, 04:00 UTC: 25% free | Sydney, 05:00 UTC: 29% free | Sydney, 06:00 UTC: 31% free | Sydney, 07:00 UTC: 31% free | Sydney, 08:00 UTC: 33% free | Sydney, 09:00 UTC: 42% free | Sydney, 10:00 UTC: 40% free | Sydney, 11:00 UTC: 45% free | Sydney, 12:00 UTC: 50% free | Sydney, 13:00 UTC: 52% free | Sydney, 14:00 UTC: 56% free | Sydney, 15:00 UTC: 58% free | Sydney, 16:00 UTC: 54% free | Sydney, 17:00 UTC: 56% free | Sydney, 18:00 UTC: 53% free | Sydney, 19:00 UTC: 51% free | Sydney, 20:00 UTC: 53% free | Sydney, 21:00 UTC: 43% free | Sydney, 22:00 UTC: 39% free | Sydney, 23:00 UTC: 41% free |
| São Paulo | São Paulo, 00:00 UTC: 36% free | São Paulo, 01:00 UTC: 40% free | São Paulo, 02:00 UTC: 44% free | São Paulo, 03:00 UTC: 43% free | São Paulo, 04:00 UTC: 47% free | São Paulo, 05:00 UTC: 51% free | São Paulo, 06:00 UTC: 44% free | São Paulo, 07:00 UTC: 42% free | São Paulo, 08:00 UTC: 44% free | São Paulo, 09:00 UTC: 38% free | São Paulo, 10:00 UTC: 36% free | São Paulo, 11:00 UTC: 29% free | São Paulo, 12:00 UTC: 30% free | São Paulo, 13:00 UTC: 24% free | São Paulo, 14:00 UTC: 22% free | São Paulo, 15:00 UTC: 19% free | São Paulo, 16:00 UTC: 14% free | São Paulo, 17:00 UTC: 14% free | São Paulo, 18:00 UTC: 15% free | São Paulo, 19:00 UTC: 18% free | São Paulo, 20:00 UTC: 19% free | São Paulo, 21:00 UTC: 22% free | São Paulo, 22:00 UTC: 26% free | São Paulo, 23:00 UTC: 32% free |
Publish supply
Providers will be able to list capacity by region, accelerator and term.
Clear the book
Demand and supply can meet at a price for each region, architecture and term.
Spot to twelve months
The market model supports spot, reserved and forward capacity.
Settle once
FabriX intends to provide one commercial layer between customers and providers.
One control plane for compute.
Customers will describe the workload and its constraints. The fabric will choose eligible supply, coordinate placement and return one endpoint without exposing provider-specific infrastructure.
- Example providers
- 2,140+
- Example regions
- 247
- Target endpoint
- 1
- Target contract
- 1
- Training
- Inference
- Batch
- Agents
- Scheduler
- Exchange
- Router
- Policy
- Telemetry
- Settlement
- Hyperscale
- Regional
- Sovereign
- Edge
Capability, not machines
Describe capability and constraints. The scheduler can decide which eligible operators, locations and grids fit.
One control plane
Scheduling, placement, failover, telemetry and settlement are designed to share one interface.
No operator lock-in
Workloads can be described against the fabric rather than a provider-specific API.
One settlement layer
The exchange is designed to reconcile provider delivery and customer usage through one ledger.
Scheduling is a policy decision.
Cost, latency, carbon, availability and residency are competing inputs. The policy model below uses real filtering and scoring logic against demonstration data. Change the objective to inspect the result.
No single axis dominates. The scheduler trades cost against latency and carbon until the marginal gain on each is equal.
- Cost
- 24%
- Latency
- 24%
- Carbon
- 20%
- Availability
- 22%
- Residency
- 10%
- Paris0.70
- Stockholm0.69
- Virginia0.67
- Frankfurt0.61
- Warsaw0.53
- London0.49
- Dublin0.36
- Dubai0.36
Paris clears every constraint at once: 6 ms, $2.19/hr and 56 g/kWh with headroom to grow.
Route compute with the grid.
Power price and carbon intensity change by hour and region. FabriX is designed to make those signals part of placement, alongside latency, capacity and residency.
- 1Stockholm80% renewable$24/MWh9 g/kWh
- 2Reykjavík69% renewable$25/MWh6 g/kWh
- 3Santiago72% renewable$29/MWh37 g/kWh
- 4Toronto56% renewable$30/MWh27 g/kWh
- 5São Paulo58% renewable$34/MWh61 g/kWh
- 6Oregon97% renewable$35/MWh19 g/kWh
See capacity before you place it.
This explorer models how capacity, latency, power and residency could be inspected across providers. The topology and readings below are simulated.
- Example capacity
- 246,000
- Modelled utilisation
- 74%
- Modelled power
- 610 MW
- Carbon intensity
- 214 g/kWh
- Northwind ComputeHyperscale99.96%
- Halcyon DCRegional99.87%
- London11 ms · 96 Tb/s
- Warsaw14 ms · 56 Tb/s
- Paris9 ms · 72 Tb/s
- Stockholm21 ms · 44 Tb/s
- Dubai96 ms · 38 Tb/s
| Region | Capacity | Utilised | Latency | Status |
|---|---|---|---|---|
| 512K | 78% | 6 ms | Available | |
| 288K | 69% | 11 ms | Available | |
| 96K | 61% | 14 ms | Available | |
| 64K | 72% | 34 ms | Available | |
| 28K | 88% | 41 ms | Limited | |
| 184K | 81% | 4 ms | Available | |
| 246K | 74% | 5 ms | Available | |
| 132K | 66% | 6 ms | Available | |
| 118K | 58% | 9 ms | Available | |
| 74K | 91% | 8 ms | Limited | |
| 92K | 55% | 12 ms | Available | |
| 46K | 49% | 19 ms | Available | |
| 156K | 63% | 16 ms | Available | |
| 88K | 51% | 18 ms | Available | |
| 128K | 77% | 22 ms | Available | |
| 142K | 89% | 7 ms | Limited | |
| 168K | 72% | 5 ms | Available | |
| 114K | 68% | 8 ms | Available | |
| 68K | 60% | 12 ms | Available | |
| 34K | 42% | 28 ms | Offline |
| Job | Workload | Region | Units | Status |
|---|---|---|---|---|
| job-8f21a4 | Training | Frankfurt | 2,048 | running |
| job-2c90de | Inference | Singapore | 384 | running |
| job-71b3ff | Fine-tune | Stockholm | 512 | running |
| job-d40c17 | Batch | Reykjavík | 1,024 | scheduling |
| job-5ae802 | Training | Virginia | 4,096 | running |
| job-b6f339 | Inference | Dubai | 256 | draining |
Model the platform at full scale.
These figures define an illustrative operating scenario for the product interfaces below. They are not current FabriX infrastructure totals.
Capacity represented in the full-scale network model.
Metro and sovereign locations represented in the model.
Jurisdictions used to test placement and residency policy.
Reference load used by the energy-routing scenario.
Training, inference and batch demand in the reference model.
Design target for a future control plane, not measured uptime.
From policy to placement.
A proposed request path from workload constraints to metering. Timings are illustrative.
Request
instantA workload is described by capability, constraints and residency.
Scheduler
~0.4 sConstraints filter the fleet; the objective ranks what survives.
Exchange
~0.6 sCapacity is matched against the book at the available clearing price.
Fabric
~0.8 sSelected regions are composed into one addressable allocation.
Deployment
~40 sImages, secrets and topology are prepared for selected regions.
Monitoring
continuousHealth, throughput, power and carbon signals inform policy.
Billing
hourlyUsage can be metered and reconciled across providers.
One request across every toolchain.
The proposed API describes accelerators, location, latency, residency and the scheduling objective once. The same shape can serve an SDK, CLI, Terraform provider or Kubernetes operator.
// Proposed API surfaceimport { FabriX } from "@fabrix/sdk"; const fabrix = new FabriX({ apiKey: process.env.FABRIX_API_KEY }); // Ask for capability. The fabric decides where it comes from.const allocation = await fabrix.compute.request({ accelerators: 4096, type: "H200", region: "eu", maxLatencyMs: 15, residency: ["eu-sovereign"], optimise: "balanced",}); console.log(allocation.placements);// [ { region: "paris", units: 1536, price: 2.19 },// { region: "frankfurt", units: 2048, price: 2.48 },// { region: "stockholm", units: 512, price: 1.76 } ] await allocation.deploy({ image: "ghcr.io/acme/trainer:2.4.1" });- PreviewTypeScript
TypeScript client - PreviewPython
Python client - PreviewCLI
Command line interface - PreviewTerraform
Infrastructure provider - PreviewKubernetes
Cluster operator - PreviewREST
HTTP API
Controls belong in the architecture.
FabriX is being designed so residency, isolation, key custody and audit policy travel with the workload across providers. These are architecture goals, not current certifications or service-level claims.
Data residency
Placement policy will be able to exclude capacity outside an approved jurisdiction.
Encryption boundaries
The architecture treats encryption at rest, in transit and in use as placement requirements.
Customer-managed keys
The control plane is designed to integrate with customer-owned key management.
Tenant isolation
Isolation policy can require dedicated node pools and network segments.
Multi-region failover
Checkpoint and placement policy can prepare workloads to move after a provider incident.
Decision records
Placement inputs, provider selection and price are designed to produce exportable records.
Constraints remain attached to every scheduling decision.
Workloads are described independently of a single provider.
Placement inputs and outputs are designed to be exportable.
Help shape the compute exchange.
We are speaking with compute buyers, infrastructure operators and enterprise design partners.