Introduction
The ECM Core Protocol Specification version 1.0.0 defines the foundational requirements for context management and interchange. This document details the message formats, data structures, and lifecycle operations integral to the compliant functioning of ECM-enabled systems. Implementers must adhere to the specifications herein to ensure interoperability and conformance.
Normative Requirements
The ECM Protocol specification employs the following requirement levels as defined in RFC 2119: MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY.
Message Envelope Structure
Each protocol message MUST conform to the specified message envelope structure. The envelope serves as a container for various context-related data actions. An example envelope is detailed in the JSON Schema below:
{
"$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "A unique identifier for the message."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 formatted date-time indicating when the message was created."
},
"context": {
"type": "object",
"description": "Contains context-specific payload."
}
},
"required": ["messageId", "timestamp", "context"]
}Data Model
The ECM Protocol mandates a structured data model to encapsulate context-related information. Each element of the context MUST be defined in alignment with the standardized schema. The context root SHOULD include:
- entity: The target entity to which the context applies.
- attributes: A collection of key-value pairs representing the context-specific attributes.
Context Interchange Lifecycle
The lifecycle of context interchange in ECM involves Initialization, Processing, and Completion stages. During Initialization, context data MUST be validated against the defined schema. Processing involves updates and context intersection, where systems SHOULD optimize for minimal overhead. Completion entails the final consolidation and storage of all context changes.
Conformance Levels
Conformity to the ECM Protocol is stratified across levels, allowing systems to claim compatibility with varying degrees of functional scope.
- Basic: Systems MUST correctly implement message parsing and validation.
- Intermediate: Includes basic features plus lifecycle management and state transitions.
- Advanced: Full compliance with all defined operations and optional extensions.
Compatibility & Versioning
Future extensions of the ECM Protocol SHOULD strive for backward compatibility. Any non-backward compatible changes MUST be clearly documented, with versioning updated according to SEMVER principles. Reference related sections (e.g., ยง4.2 of the Core Protocol) where applicable.
Semantic Versioning (SEMVER) Guidelines
The ECM Protocol MUST adhere to Semantic Versioning 2.0.0 (SEMVER) as outlined by the SEMVER specification (Semantic Versioning 2.0.0). According to SEMVER, version numbers MUST take the form of MAJOR.MINOR.PATCH, where:
- MAJOR version increments imply incompatible API changes,
- MINOR version increments imply backward-compatible functionality, and
- PATCH version increments imply backward-compatible bug fixes.
All ECM Protocol components MUST reflect accurate version numbers to facilitate appropriate adoption and integration strategies within systems utilizing the ECM Protocol.
Backward Compatibility
Backward compatibility SHOULD be maintained to ensure seamless integration with existing implementations. Any changes introducing backward incompatibility MUST be clearly communicated in updated version documentation. Changes MUST be tested against existing implementations, and test cases SHOULD be provided to validate compatibility claims.
Deprecation Policy
When elements of the ECM Protocol are to be deprecated, the deprecation MUST be announced in at least one prior minor version before actual removal. Clear documentation regarding deprecated features SHOULD be provided, along with recommended alternatives.
Example of deprecation announcement:
{
"deprecation": {
"feature": "oldFeature",
"deprecated_in": "1.2.0",
"removed_in": "2.0.0",
"alternative": "newFeature"
}
}
Error Handling During Version Mismatches
Implementations MUST handle version mismatches gracefully. On encountering compatibility issues, implementations SHOULD provide descriptive error messages outlining the nature of the incompatibility and suggested mitigation paths.
{
"error": {
"code": "VERSION_MISMATCH",
"message": "The current implementation is incompatible with version 2.0.0 due to deprecated functions.",
"suggested_action": "Consider upgrading to a compatible implementation version."
}
}
Version Negotiation
The ECM Protocol MAY incorporate a version negotiation mechanism to facilitate smooth cross-version communication between nodes. This mechanism SHOULD allow entities to discover mutually supported protocol versions before initiating detailed exchanges of context data. If parties cannot agree upon a compatible version, the negotiation process MUST provide an option for graceful failure.
Implementation Considerations
Implementers SHOULD be aware of versioning impacts on ECM Protocol adoption and the potential necessity for sdk updates to stay compatible with new protocol releases. Given these dynamics, it is recommended that version negotiation processes and deprecation warnings be integrated into development pipelines to minimize disruption.
For detailed procedural and operational guidelines on integrating SEMVER with ECM implementation standards, refer to ยง4.2 of the Core Protocol.
Reference Standards
The ECM Protocol is designed to interoperate with existing standards where applicable, including, but not limited to:
- IETF RFC 2119 - Key RFC defining requirement levels.
- ISO 8601 - International standard for date-time format.
- JSON Schema - Specification for JSON-based format validation.