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
{
"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."}
]
}
]
}