SOA · Schema
SOA Service
Schema representing a Service-Oriented Architecture (SOA) service — a discrete unit of business functionality exposed through a well-defined interface.
SOAService-Oriented ArchitectureEnterprise IntegrationWeb ServicesSOAPESBMicroservicesAPI Design
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for the service (e.g. urn:service:payment-processing) |
| name | string | Human-readable service name (e.g. Payment Processing Service) |
| description | string | Description of the business capability provided by this service |
| version | string | Semantic version of the service contract |
| status | string | Lifecycle status of the service |
| interface | object | The technical interface definition for the service |
| owner | object | Team or organizational unit that owns this service |
| sla | object | Service Level Agreement parameters |
| dependencies | array | Other services this service depends on |
| tags | array | Classification tags for service discovery |
| registered_at | string | When the service was registered in the service registry |
| updated_at | string | When the service definition was last updated |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/api-evangelist/soa/blob/main/json-schema/soa-service-schema.json",
"title": "SOA Service",
"description": "Schema representing a Service-Oriented Architecture (SOA) service — a discrete unit of business functionality exposed through a well-defined interface.",
"type": "object",
"required": ["id", "name", "interface"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the service (e.g. urn:service:payment-processing)"
},
"name": {
"type": "string",
"description": "Human-readable service name (e.g. Payment Processing Service)"
},
"description": {
"type": "string",
"description": "Description of the business capability provided by this service"
},
"version": {
"type": "string",
"description": "Semantic version of the service contract",
"example": "2.1.0"
},
"status": {
"type": "string",
"enum": ["active", "deprecated", "retired", "testing"],
"description": "Lifecycle status of the service"
},
"interface": {
"type": "object",
"description": "The technical interface definition for the service",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["SOAP", "REST", "gRPC", "messaging", "GraphQL"],
"description": "Protocol used by the service interface"
},
"wsdl_url": {
"type": "string",
"format": "uri",
"description": "URL of the WSDL definition (for SOAP services)"
},
"openapi_url": {
"type": "string",
"format": "uri",
"description": "URL of the OpenAPI specification (for REST services)"
},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Service endpoint URL"
},
"operations": {
"type": "array",
"description": "List of operations exposed by the service",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Operation name"
},
"description": {
"type": "string",
"description": "Operation description"
},
"input_schema": {
"type": "string",
"description": "Reference to input message schema"
},
"output_schema": {
"type": "string",
"description": "Reference to output message schema"
}
}
}
}
}
},
"owner": {
"type": "object",
"description": "Team or organizational unit that owns this service",
"properties": {
"team": {
"type": "string",
"description": "Team name"
},
"email": {
"type": "string",
"format": "email",
"description": "Contact email for the service owner"
},
"domain": {
"type": "string",
"description": "Business domain this service belongs to"
}
}
},
"sla": {
"type": "object",
"description": "Service Level Agreement parameters",
"properties": {
"availability": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Guaranteed uptime percentage (e.g. 99.9)"
},
"response_time_ms": {
"type": "integer",
"description": "Maximum response time in milliseconds"
},
"rate_limit": {
"type": "object",
"properties": {
"requests": {
"type": "integer",
"description": "Maximum requests per period"
},
"period": {
"type": "string",
"enum": ["second", "minute", "hour", "day"],
"description": "Rate limit period"
}
}
}
}
},
"dependencies": {
"type": "array",
"description": "Other services this service depends on",
"items": {
"type": "string",
"description": "Service ID of a dependency"
}
},
"tags": {
"type": "array",
"description": "Classification tags for service discovery",
"items": {
"type": "string"
}
},
"registered_at": {
"type": "string",
"format": "date-time",
"description": "When the service was registered in the service registry"
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "When the service definition was last updated"
}
}
}