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

Dependency diagram orchestrata_ultimate.cxp.constants

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

Permalink: https://gitlab.com/MSamy/orchestrata-ultimate-architecture/-/blob/a4cbc2bdf/src/orchestrata_ultimate/cxp/constants.py

"""
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