Scalable Architecture · JSON Structure

Scalable Architecture Microservice Structure

Hierarchical field structure for a microservice in a scalable distributed architecture, including service boundaries, API contract, dependencies, scaling, and resilience configurations.

Type: Properties: 0
Cloud ArchitectureCloud NativeDistributed SystemsHigh AvailabilityInfrastructureMicroservicesPerformanceResilienceScalabilityService Mesh

Microservice is a JSON Structure definition published by Scalable Architecture.

Meta-schema:

JSON Structure

Raw ↑
{
  "name": "Microservice",
  "description": "Hierarchical field structure for a microservice in a scalable distributed architecture, including service boundaries, API contract, dependencies, scaling, and resilience configurations.",
  "fields": [
    {"name": "name", "type": "string", "description": "Service name in kebab-case.", "required": true},
    {"name": "version", "type": "string", "description": "Semantic version (e.g., 1.2.3).", "required": true},
    {"name": "description", "type": "string", "description": "Bounded context and responsibilities.", "required": false},
    {"name": "team", "type": "string", "description": "Owning team name.", "required": false},
    {"name": "domain", "type": "string", "description": "Domain bounded context.", "required": false},
    {
      "name": "api",
      "type": "object",
      "description": "API contract definition.",
      "required": true,
      "fields": [
        {"name": "protocol", "type": "string", "description": "HTTP/REST, gRPC, GraphQL, Kafka, etc.", "required": true},
        {"name": "version", "type": "string", "description": "API version (v1, v2...).", "required": false},
        {"name": "baseUrl", "type": "string", "description": "Base URL for the service.", "required": false},
        {"name": "healthEndpoint", "type": "string", "description": "Liveness/readiness probe path.", "required": false},
        {"name": "metricsEndpoint", "type": "string", "description": "Prometheus metrics scrape path.", "required": false}
      ]
    },
    {
      "name": "dependencies",
      "type": "array",
      "description": "Upstream service dependencies.",
      "required": false,
      "items": {
        "fields": [
          {"name": "name", "type": "string", "description": "Dependent service name.", "required": true},
          {"name": "type", "type": "string", "description": "synchronous, asynchronous, database, cache, queue.", "required": true},
          {"name": "required", "type": "boolean", "description": "Whether failure is fatal.", "required": false},
          {"name": "circuitBreaker", "type": "boolean", "description": "Circuit breaker applied.", "required": false}
        ]
      }
    },
    {
      "name": "resources",
      "type": "object",
      "description": "CPU/memory resource requests and limits.",
      "required": false,
      "fields": [
        {"name": "requests", "type": "object", "description": "Minimum resources guaranteed.", "fields": [
          {"name": "cpu", "type": "string", "description": "CPU in millicores (e.g., 100m)."},
          {"name": "memory", "type": "string", "description": "Memory (e.g., 128Mi)."}
        ]},
        {"name": "limits", "type": "object", "description": "Maximum resources allowed.", "fields": [
          {"name": "cpu", "type": "string"},
          {"name": "memory", "type": "string"}
        ]}
      ]
    },
    {
      "name": "scaling",
      "type": "object",
      "description": "Autoscaling configuration.",
      "required": false,
      "fields": [
        {"name": "minReplicas", "type": "integer", "description": "Minimum pod replicas."},
        {"name": "maxReplicas", "type": "integer", "description": "Maximum pod replicas."},
        {"name": "targetCPUUtilizationPercentage", "type": "integer", "description": "HPA CPU target percentage."},
        {"name": "scaleToZero", "type": "boolean", "description": "Allow scale-to-zero via KEDA."},
        {"name": "scalingTrigger", "type": "string", "description": "Trigger type driving autoscaling."}
      ]
    },
    {
      "name": "resilience",
      "type": "object",
      "description": "Resilience pattern configurations.",
      "required": false,
      "fields": [
        {"name": "circuitBreaker", "type": "object", "description": "Circuit breaker settings."},
        {"name": "retry", "type": "object", "description": "Retry with backoff settings."},
        {"name": "timeout", "type": "object", "description": "Request and connection timeouts."}
      ]
    },
    {
      "name": "observability",
      "type": "object",
      "description": "Observability instrumentation configuration.",
      "required": false,
      "fields": [
        {"name": "tracingEnabled", "type": "boolean"},
        {"name": "metricsEnabled", "type": "boolean"},
        {"name": "loggingLevel", "type": "string", "description": "DEBUG, INFO, WARN, ERROR."},
        {"name": "samplingRate", "type": "number", "description": "Distributed trace sampling rate 0.0-1.0."}
      ]
    }
  ]
}