Scalability · JSON Structure

Scalability Load Balancer Structure

Hierarchical structure of a load balancer configuration for distributing network traffic across compute resources.

Type: Properties: 0
Auto ScalingCloud ComputingDevOpsDistributed SystemsElasticityHigh AvailabilityInfrastructureLoad BalancingPerformanceScalability

Load Balancer is a JSON Structure definition published by Scalability.

Meta-schema:

JSON Structure

Raw ↑
{
  "name": "Load Balancer",
  "description": "Hierarchical structure of a load balancer configuration for distributing network traffic across compute resources.",
  "fields": [
    {
      "name": "id",
      "type": "string",
      "description": "Unique UUID identifier for the load balancer.",
      "required": false,
      "format": "uuid"
    },
    {
      "name": "name",
      "type": "string",
      "description": "Human-readable name for the load balancer.",
      "required": true
    },
    {
      "name": "type",
      "type": "string",
      "description": "Layer at which the load balancer operates (L4, L7, Global, Regional, Application, Network, Gateway).",
      "required": true
    },
    {
      "name": "algorithm",
      "type": "string",
      "description": "Traffic distribution algorithm (round-robin, least-connections, ip-hash, weighted, random, resource-based).",
      "required": false,
      "default": "round-robin"
    },
    {
      "name": "protocol",
      "type": "string",
      "description": "Network protocol (HTTP, HTTPS, TCP, UDP, gRPC).",
      "required": false,
      "default": "HTTPS"
    },
    {
      "name": "frontendPort",
      "type": "integer",
      "description": "Port on which the load balancer listens for incoming traffic.",
      "required": false
    },
    {
      "name": "healthCheck",
      "type": "object",
      "description": "Health check configuration for backend servers.",
      "required": false,
      "fields": [
        {"name": "enabled", "type": "boolean", "description": "Whether health checks are active.", "default": true},
        {"name": "protocol", "type": "string", "description": "Protocol for health check probes (HTTP, HTTPS, TCP)."},
        {"name": "path", "type": "string", "description": "HTTP path for health check requests.", "default": "/health"},
        {"name": "intervalSeconds", "type": "integer", "description": "Seconds between health check probes.", "default": 30},
        {"name": "timeoutSeconds", "type": "integer", "description": "Seconds before a probe times out.", "default": 5},
        {"name": "healthyThreshold", "type": "integer", "description": "Consecutive successes to mark backend healthy.", "default": 2},
        {"name": "unhealthyThreshold", "type": "integer", "description": "Consecutive failures to mark backend unhealthy.", "default": 3},
        {"name": "expectedStatusCodes", "type": "array", "description": "HTTP status codes indicating a healthy backend."}
      ]
    },
    {
      "name": "backends",
      "type": "array",
      "description": "List of backend targets receiving distributed traffic.",
      "required": true,
      "items": {
        "type": "object",
        "fields": [
          {"name": "id", "type": "string", "description": "Unique identifier for the backend."},
          {"name": "address", "type": "string", "description": "IP address or hostname of the backend server.", "required": true},
          {"name": "port", "type": "integer", "description": "Port the backend listens on.", "required": true},
          {"name": "weight", "type": "integer", "description": "Relative weight for weighted load balancing (0-100).", "default": 1},
          {"name": "status", "type": "string", "description": "Backend health status (healthy, unhealthy, draining, unknown)."}
        ]
      }
    },
    {
      "name": "stickySession",
      "type": "object",
      "description": "Session affinity (sticky session) configuration.",
      "required": false,
      "fields": [
        {"name": "enabled", "type": "boolean", "description": "Whether sticky sessions are enabled.", "default": false},
        {"name": "cookieName", "type": "string", "description": "Cookie name used for session tracking."},
        {"name": "ttlSeconds", "type": "integer", "description": "Session TTL in seconds."}
      ]
    },
    {
      "name": "tlsTermination",
      "type": "boolean",
      "description": "Whether TLS is terminated at the load balancer (offloading TLS from backends).",
      "required": false,
      "default": false
    },
    {
      "name": "tags",
      "type": "object",
      "description": "Key-value metadata labels for the load balancer.",
      "required": false
    }
  ]
}