core.event_types module

Versioned event envelope for the Redis Streams bus.

Defines EventEnvelope (a frozen dataclass carrying event identity, source service/instance, trace id, payload, and schema_version) plus forward-compatible deserialization: deserialize_envelope() ignores unknown fields and rejects envelopes newer than SUPPORTED_SCHEMA_VERSION (returning None so the caller can route them to the dead-letter queue).

class core.event_types.EventEnvelope(event_id='', event_type='', source_service='', source_instance='', trace_id='', timestamp=0.0, payload=None, data=b'', retry_count=0, schema_version=1)[source]

Bases: object

Parameters:
  • event_id (str)

  • event_type (str)

  • source_service (str)

  • source_instance (str)

  • trace_id (str)

  • timestamp (float)

  • payload (dict)

  • data (bytes)

  • retry_count (int)

  • schema_version (int)

event_id: str = ''
event_type: str = ''
source_service: str = ''
source_instance: str = ''
trace_id: str = ''
timestamp: float = 0.0
payload: dict = None
data: bytes = b''
retry_count: int = 0
schema_version: int = 1
core.event_types.deserialize_envelope(raw)[source]

Deserialize with forward compatibility.

  • Unknown fields are silently ignored.

  • If schema_version > SUPPORTED_SCHEMA_VERSION, return None (caller routes to DLQ).

Return type:

EventEnvelope | None

Parameters:

raw (dict)