Class FailoverGeoZonesConstraint

java.lang.Object
com.eqixiac.equinix.design.resilience.FailoverGeoZonesConstraint
All Implemented Interfaces:
Constraint

public final class FailoverGeoZonesConstraint extends Object implements Constraint
"geo_zones_failover": data sovereignty that holds through failover. Every path the design actually uses (the metro a workload runs in, the metros its sites' traffic crosses, the metros its cloud traffic crosses) must lie inside the spec's constraints.geoZones, at baseline and after every single-element failure: a standby path that leaves the zones is a violation even when the primary path stays inside. Zone membership is the catalogue's geoScopes/geoZones for each metro, as the built-in geo_zones constraint reads them.

Inert when the spec states no geo zones. In a Metro Optimizer run the built-in geo_zones constraint already keeps every portfolio metro inside the zones, so this check can only add findings for paths outside the portfolio; its main use is on a portfolio analysed as given (ResilienceAnalyzer.portfolio(MetroPortfolio)), where it names the scenario that leaves the zone.

  • Field Details

  • Constructor Details

    • FailoverGeoZonesConstraint

      public FailoverGeoZonesConstraint()
      With the default options.
    • FailoverGeoZonesConstraint

      public FailoverGeoZonesConstraint(ResilienceOptions options)
      Parameters:
      options - graph and simulation options
  • Method Details

    • id

      public String id()
      Specified by:
      id in interface Constraint
      Returns:
      a stable id, lower_snake_case (for example max_latency)
    • check

      public ConstraintVerdict check(MetroPortfolio portfolio, DesignContext context)
      Description copied from interface: Constraint
      Checks a whole portfolio.
      Specified by:
      check in interface Constraint
      Parameters:
      portfolio - the candidate design
      context - the facts of this run
      Returns:
      the verdict with its reason