eqixiacEquinix Infrastructure as Code

Design layer overview

The engines that place, plan, price and review an Equinix deployment, what each one reads, and what is still planned.

Purpose#

The API layer creates and reads individual resources. The design layer works on the decisions around them: the choice of metros, the topology, the cost, and the sizing of an estate that already exists. The engines only read from the account, with one exception: executing or reconciling a deployment plan creates resources.

DesignSpecJSON or YAMLMetro Optimizerportfolio solverOptimizationResultfrontier, sensitivityRate cardssavings, TCODeployment Wizardplan, validateDeploymentPlanJSON, plan idexecutereconcile, diffPeering IntelligencePeeringDBEstate analysislive inventoryTerraform HCLMermaidFabric APImetros, service profiles, prices, live statepricespricescreatesreadsreads
Flow through the design layer. The DesignSpec is the shared input. Only execute and reconcile create resources.

Engines#

EngineEntry pointQuestion it answersStatus
DesignSpecDesignSpec.builder(), DesignSpecIOWhat is the design intent, as a versioned documentNew in 4.0
Metro Optimizerdesign.optimizeMetros()Which set of metros serves the sites, workloads and clouds bestRebuilt in 4.0
Deployment Wizarddesign.deploymentWizard(result)What exactly to create, in what order, at what price; and whether live state still matchesLifecycle New in 4.0
Estate analysisdesign.analyzeEstate()What to change in the estate that already existsNew in 4.0
Peering Intelligencedesign.peeringIntelligence()Where target networks are present at Equinix, and what a metro loss removes
Cost and valuedesign.savingsCalculator(), design.tcoComparison()What a design costs and what it saves, with the source of every figure
Cloud-to-cloudtoCloud(...) on the calculators, cloudToCloudStrategy(...) on the wizardWhether traffic between two clouds belongs on Equinix or on a native provider linkBeta

Entry points#

Design gives access to the engines on top of a Fabric client. The engines read through the FabricGateway interface (metros, service profiles, Cloud Routers, connections, routing protocols, prices) and reuse the client's token and connection pool.

Java
import com.eqixiac.equinix.Design;
import com.eqixiac.equinix.Equinix;

try (Equinix eq = new Equinix(credentials)) {
    Design design = eq.design();           // or Design.over(fabric)
    design.optimizeMetros();               // builders; nothing is sent until the terminal call
    design.tcoComparison();
    design.analyzeEstate();
}

Fabric exposes the same builders directly: fabric.optimizeMetros(), fabric.deploymentWizard(result), fabric.peeringIntelligence(), fabric.savingsCalculator(), fabric.tcoComparison().

Shared rules#

All engines handle missing data and provenance in the same way.

  • An engine reports an item that it cannot price as unpriced, with a reason, and does not count it as zero. A latency that was neither measured nor computable is treated as unknown and is left out of scoring.
  • An engine adds amounts only within one currency and applies no exchange rate. It reports a result with mixed currencies as one subtotal per currency.
  • Each price in a result states its source: the live Equinix price search, a figure supplied by the caller, a provider's public price API, the bundled dated reference table, or an estimate.
  • A result records the fingerprint of the DesignSpec it was computed from and the time of the data it read, so that a run can be repeated and compared.

Data sources#

DataSourceNotes
Metros, regions, connected-metro latencyFabric Metros APIavgLatency is round-trip. Measured live on 2026-11-11: SV to DC 65.8 ms.
Which cloud is reachable in which metroFabric service profiles
Equinix pricesFabric price search, liveFalls back to the reference card when a lookup cannot be answered
Cloud egress pricesBundled reference table dated 2026-06, or the providers' public price APIs when enabledList prices; a negotiated discount is not in them
Native cloud-to-cloud prices and region pairsBundled tables dated 2026-09-21Copies of provider pages; they go stale
Network presence at exchanges and facilitiesPeeringDBSeparate rate limit; optional API key
IBX coordinatesInternet AccessFor IBX-to-IBX latency floors

Planned#

The plan lifecycle (diff, reconcile, rollback) and estate analysis entered the tree during the week this page was written. Their API may still change before 4.0.0 is published.