orchestrata_ultimate.cxp.constants
Reference › orchestrata_ultimate › cxp › constants
constants is the leaf module that holds the protocol constants of CXP (Spec 004) so that no other module repeats a magic number. It imports nothing from the project and is used by delivery_status, dispatcher, headers, priority, prolog_bridge, schema, validator and version.
The constants fall into groups: the protocol name and version (PROTOCOL_NAME, PROTOCOL_VERSION); the validation patterns for UUIDs, semantic versions and volk aliases (UUID_PATTERN, SEMVER_PATTERN, VOLK_ALIAS_PATTERN); size limits for subject, payload and thread length; the priority range (PRIORITY_MIN, PRIORITY_MAX); time-to-live bounds; delivery retry settings (MAX_DELIVERY_ATTEMPTS, DEFAULT_RETRY_DELAY_SECONDS); and the PERF_* time budgets in milliseconds for header extraction, serialisation, validation and thread lookup. The values are listed in the API table below. See cxp.
At a glance
| Source | src/orchestrata_ultimate/cxp/constants.py |
| Lines of code | 84 |
| Classes | 0 |
| Functions | 0 |
| Imports (internal) | none |
| Imported by | orchestrata_ultimate.cxp, orchestrata_ultimate.cxp.delivery_status, orchestrata_ultimate.cxp.dispatcher, orchestrata_ultimate.cxp.headers, orchestrata_ultimate.cxp.priority, orchestrata_ultimate.cxp.prolog_bridge, orchestrata_ultimate.cxp.schema, orchestrata_ultimate.cxp.validator, orchestrata_ultimate.cxp.version |
| Tests that import it | tests/cxp/test_constants.py, tests/test_cxp.py |
Class diagram
No classes; see Functions.
Dependency diagram
API
Constants
| Name | Type | Value |
|---|---|---|
PROTOCOL_VERSION |
str |
'1.0.0' |
PROTOCOL_NAME |
str |
'CXP' |
UUID_PATTERN |
str |
'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' |
SEMVER_PATTERN |
str |
'^\\d+\\.\\d+\\.\\d+$' |
VOLK_ALIAS_PATTERN |
str |
'^U:[A-Z][a-z]$' |
SUBJECT_MAX_LENGTH |
int |
200 |
PAYLOAD_MAX_BYTES |
int |
10485760 |
THREAD_MAX_MESSAGES |
int |
10000 |
PRIORITY_MIN |
int |
0 |
PRIORITY_MAX |
int |
10 |
TTL_DEFAULT_SECONDS |
int |
3600 |
TTL_MIN_SECONDS |
int |
1 |
TTL_MAX_SECONDS |
int |
86400 |
MAX_DELIVERY_ATTEMPTS |
int |
3 |
DEFAULT_RETRY_DELAY_SECONDS |
int |
60 |
PERF_HEADER_EXTRACT_MS |
float |
1.0 |
PERF_JSON_SERIALIZE_MS |
float |
10.0 |
PERF_BINARY_SERIALIZE_MS |
float |
5.0 |
PERF_VALIDATION_MS |
float |
5.0 |
PERF_THREAD_LOOKUP_MS |
float |
2.0 |
Source
"""
CXP Protocol Constants.
Protocol-level constants for the Cross-agent eXchange Protocol.
These are pure definitions with no external dependencies.
"""
# Spec: 004 - CXP Protocol
import re
__all__ = [
# Version
"PROTOCOL_VERSION",
"PROTOCOL_NAME",
# Patterns
"UUID_PATTERN",
"UUID_REGEX",
"SEMVER_PATTERN",
"SEMVER_REGEX",
"VOLK_ALIAS_PATTERN",
"VOLK_ALIAS_REGEX",
# Limits
"SUBJECT_MAX_LENGTH",
"PAYLOAD_MAX_BYTES",
"THREAD_MAX_MESSAGES",
"PRIORITY_MIN",
"PRIORITY_MAX",
"TTL_DEFAULT_SECONDS",
"TTL_MIN_SECONDS",
"TTL_MAX_SECONDS",
"MAX_DELIVERY_ATTEMPTS",
"DEFAULT_RETRY_DELAY_SECONDS",
# Performance targets (Spec 004)
"PERF_HEADER_EXTRACT_MS",
"PERF_JSON_SERIALIZE_MS",
"PERF_BINARY_SERIALIZE_MS",
"PERF_VALIDATION_MS",
"PERF_THREAD_LOOKUP_MS",
]
# ---------- Protocol identity ----------
PROTOCOL_VERSION: str = "1.0.0"
PROTOCOL_NAME: str = "CXP"
# ---------- Validation patterns ----------
UUID_PATTERN: str = r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
UUID_REGEX = re.compile(UUID_PATTERN, re.IGNORECASE)
SEMVER_PATTERN: str = r"^\d+\.\d+\.\d+$"
SEMVER_REGEX = re.compile(r"^\d+\.\d+\.\d+$")
VOLK_ALIAS_PATTERN: str = r"^U:[A-Z][a-z]$"
VOLK_ALIAS_REGEX = re.compile(VOLK_ALIAS_PATTERN)
# ---------- Field limits ----------
SUBJECT_MAX_LENGTH: int = 200
PAYLOAD_MAX_BYTES: int = 10_485_760 # 10 MB (JSON payload limit per spec)
THREAD_MAX_MESSAGES: int = 10_000
PRIORITY_MIN: int = 0
PRIORITY_MAX: int = 10
TTL_DEFAULT_SECONDS: int = 3600
TTL_MIN_SECONDS: int = 1
TTL_MAX_SECONDS: int = 86_400 # 24 hours
MAX_DELIVERY_ATTEMPTS: int = 3
DEFAULT_RETRY_DELAY_SECONDS: int = 60
# ---------- Performance targets (milliseconds) ----------
PERF_HEADER_EXTRACT_MS: float = 1.0 # Header extraction < 1ms
PERF_JSON_SERIALIZE_MS: float = 10.0 # JSON serialization < 10ms for 1KB
PERF_BINARY_SERIALIZE_MS: float = 5.0 # Binary serialization < 5ms for 1KB
PERF_VALIDATION_MS: float = 5.0 # Validation < 5ms
PERF_THREAD_LOOKUP_MS: float = 2.0 # Thread lookup < 2ms