eqixiacEquinix Infrastructure as Code

Design layer overview

The design-layer engines, their inputs and data sources, and the parts not yet in the tree.

Purpose#

The design layer computes metro selection, topology, cost and estate sizing on top of the Fabric client. The engines read from the account. Only execute and reconcile on a deployment plan create 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 pointOutputStatus
DesignSpecDesignSpec.builder(), DesignSpecIOVersioned design documentNew in 4.0
Metro Optimizerdesign.optimizeMetros()Set of metros for the sites, workloads and cloudsRebuilt in 4.0
Deployment Wizarddesign.deploymentWizard(result)Resources to create, in order, with prices; drift against live stateLifecycle New in 4.0
Estate analysisdesign.analyzeEstate()Findings on the existing estateNew in 4.0
Peering Intelligencedesign.peeringIntelligence()Presence of target networks at Equinix; peering lost with a metro
Cost and valuedesign.savingsCalculator(), design.tcoComparison()Cost and savings of a design, with price sources
Cloud-to-cloudtoCloud(...) on the calculators, cloudToCloudStrategy(...) on the wizardCost of traffic between two clouds over Fabric and over 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#

  • 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 in the week of 2026-11-12. Their API may change before 4.0.0.