Discover

Search available simulation templates

Returns the list of pre-built infrastructure scenario templates. Scenarios define a complete simulation configuration (resources, traffic, connections) that can be loaded directly into a new simulation via the browser UI or the API.

Optional filters narrow the catalog by provider, category, and difficulty. Omit all filters to receive the complete, unfiltered scenario catalog. Category matching is case-insensitive.

No authentication required.

get/scenarios

Request

  • Base URL: https://www.cloudworldmodel.ai/api
  • URL: https://www.cloudworldmodel.ai/api/scenarios
  • Auth: none required

Query parameters

provider'aws' | 'gcp' | 'azure' | 'oci' | 'digitalocean'

Return scenarios containing resources from this cloud provider.

category'cost' | 'failure' | 'networking' | 'reliability' | 'scaling'

Return scenarios in this category. Matching is case-insensitive. Supported catalog categories are cost, failure, networking, reliability, and scaling.

difficulty'beginner' | 'intermediate' | 'advanced'

Return scenarios at this difficulty level.

Response

Array of scenario templates

idstring required

Unique scenario identifier.

titlestring required

Short display title for the reusable simulation scenario.

descriptionstring required

Summary of the scenario setup and the behavior it is intended to demonstrate.

difficulty'beginner' | 'intermediate' | 'advanced' required

Relative experience level recommended for running and interpreting the scenario.

durationstring required

Approximate time needed to run the scenario.

tagsstring[] required

Search and categorization labels for the scenario.

categorystring required

Broad scenario category used for filtering and organization.

primaryPurpose'educational' | 'chaos' | 'predictive' | 'optimization' nullable

Optional explicit primary purpose. Educational means a guided concept, chaos means an injected failure, predictive means a capacity simulation, and optimization means a configuration comparison. Legacy rows may omit it.

seedinteger

Deterministic simulation seed for repeatable scenario replays.

Example response

[
  {
    "id": "github-inspired-cascading-retry-storm",
    "title": "GitHub-Inspired Cascading Retry Storm (Unofficial)",
    "resources": [
      {
        "id": "ec2-1",
        "type": "compute",
        "name": "Web Server 1",
        "provider": "aws",
        "location": {
          "regionKey": "us-east-2"
        },
        "characteristics": {
          "workload": "crud",
          "appRuntime": "node",
          "appWorkerCount": 2,
          "appDbPoolSize": 250,
          "workloadDatabaseVersion": "8.0",
          "workloadDatabaseEngine": "mysql",
          "rdsSqlServerBilling": {
            "instanceClass": "db.t3.micro",
            "storageType": "gp2",
            "allocatedStorageGiB": 20,
            "durationHours": 480,
            "sustainedCpuPercent": 43
          },
          "serviceFamily": "ec2",
          "containerCpu": 0.5,
          "containerMemoryGiB": 1,
          "runtimeMemoryProfile": {
            "workingSetGiB": 0.78125
          },
          "concurrency": 80,
          "requestDurationSeconds": 0.25,
          "requestServingTargetUtilizationPct": 70,
          "billingState": "stopped",
          "size": "m5.large",
          "instanceType": "t3.medium",
          "ocpus": 4,
          "maxThroughput": 2000,
          "capacityRps": 100,
          "baseLatency": 3,
          "maxConnections": 800,
          "capacityGB": 500,
          "maxIops": 3000,
          "inferenceMode": true,
          "accelerator": "a10g",
          "managedComputePlatform": "nvidia-dgx-cloud",
          "openshiftOffering": "rosa-hcp",
          "topology": {
            "intraNode": "nvlink-nvswitch",
            "interNode": "infiniband"
          },
          "intraNode": "nvlink-nvswitch",
          "interNode": "infiniband",
          "includesControlPlane": true,
          "bundledNetworking": true,
          "trainingMode": true,
          "tokensPerRequest": 500,
          "inputTokensPerRequest": 1000,
          "cacheHitRate": 0.85,
          "cacheableRequestShare": 0.75,
          "asynchronousRequestShare": 0.15,
          "queueConsumerCount": 4,
          "queueDrainRatePerConsumerRps": 125,
          "queueCapacityMessages": 20000,
          "queueSimulationStepSeconds": 1,
          "autoscaling": true,
          "maxInstances": 5,
          "minInstances": 2,
          "scaleOutCpuThreshold": 60,
          "scaleInCpuThreshold": 25,
          "nodeCount": 2,
          "workerVcpu": 4,
          "minNodes": 2,
          "maxNodes": 10,
          "perNodeRate": 3.2,
          "pricingModel": "on-demand",
          "nodePools": [
            {
              "name": "general",
              "nodeCount": 2,
              "workerVcpu": 8,
              "minNodes": 2,
              "maxNodes": 10,
              "perNodeRate": 0.096,
              "maxThroughput": 10000
            }
          ],
          "streamShardsCount": 4,
          "streamWriteRps": 3500,
          "eventNotificationsEnabled": true,
          "partitionCount": 8,
          "streamPartitions": 4,
          "partitionWriteRps": 5000,
          "warmupSteps": 5,
          "warmupSeverity": 0.8
        },
        "routedRps": 15,
        "availabilityState": "available",
        "isRoutable": true,
        "failureParkStepsRemaining": 3,
        "recoveryPolicy": {
          "criticalCpuThreshold": 75,
          "criticalSteps": 2,
          "warningCpuThreshold": 60,
          "warningSteps": 1,
          "failureParkSteps": 2
        }
      }
    ],
    "duration": "~25 min",
    "category": "reliability",
    "resilienceConfig": {
      "dependencies": [
        {
          "id": "web-to-db",
          "sourceId": "web-1",
          "targetId": "db-1",
          "requestRatio": 1,
          "authDependencyId": "gateway-to-token-service",
          "retryPolicy": {
            "maxRetries": 3,
            "backoffMs": 100,
            "backoffMultiplier": 2,
            "jitterRatio": 0.1,
            "timeoutMs": 2000,
            "retryBudgetRatio": 2,
            "retryBudgetRps": 1000,
            "retryActorId": "gateway_optimistic_retries"
          },
          "capacity": {
            "maxRps": 10000,
            "maxConcurrent": 200,
            "meanServiceTimeMs": 100
          },
          "protection": {
            "circuitBreaker": {
              "failureRateThreshold": 0.5,
              "minimumRequests": 20,
              "openSteps": 3,
              "halfOpenMaxRequests": 10
            },
            "rateLimitRps": 5000
          }
        }
      ],
      "scheduledFaults": [
        {
          "id": "db-capacity-fault",
          "targetResourceId": "db-1",
          "dependencyId": "web-to-db",
          "startStep": 5,
          "endStep": 15,
          "capacityPercent": 30,
          "maxConcurrent": 5,
          "addedLatencyMs": 500,
          "errorRate": 0.3,
          "trafficMultiplier": 2.25
        }
      ],
      "maxCascadeDepth": 4,
      "maxGeneratedRps": 100000,
      "maxStepWork": 512
    },
    "protectedResilienceConfig": {
      "dependencies": [
        {
          "id": "web-to-db",
          "sourceId": "web-1",
          "targetId": "db-1",
          "requestRatio": 1,
          "authDependencyId": "gateway-to-token-service",
          "retryPolicy": {
            "maxRetries": 3,
            "backoffMs": 100,
            "backoffMultiplier": 2,
            "jitterRatio": 0.1,
            "timeoutMs": 2000,
            "retryBudgetRatio": 2,
            "retryBudgetRps": 1000,
            "retryActorId": "gateway_optimistic_retries"
          },
          "capacity": {
            "maxRps": 10000,
            "maxConcurrent": 200,
            "meanServiceTimeMs": 100
          },
          "protection": {
            "circuitBreaker": {
              "failureRateThreshold": 0.5,
              "minimumRequests": 20,
              "openSteps": 3,
              "halfOpenMaxRequests": 10
            },
            "rateLimitRps": 5000
          }
        }
      ],
      "scheduledFaults": [
        {
          "id": "db-capacity-fault",
          "targetResourceId": "db-1",
          "dependencyId": "web-to-db",
          "startStep": 5,
          "endStep": 15,
          "capacityPercent": 30,
          "maxConcurrent": 5,
          "addedLatencyMs": 500,
          "errorRate": 0.3,
          "trafficMultiplier": 2.25
        }
      ],
      "maxCascadeDepth": 4,
      "maxGeneratedRps": 100000,
      "maxStepWork": 512
    }
  }
]

Changes

No recorded changes to this operation across all 1 revision of this API.