Перейти к содержанию

Формат сообщений

Общая структура

Все сообщения публикуются в формате JSON с content_type: application/json.

Конверт сообщения (envelope)

Каждое сообщение оборачивается в стандартный конверт:

Поле Тип Обязательное Описание
event_id string (UUID) Да Уникальный идентификатор сообщения
event_type string Да Тип сообщения (совпадает с routing key)
tenant_id integer \| null Нет ID тенанта (null если не применим, например при регистрации)
data object Да Бизнес-данные сообщения
timestamp string (ISO 8601) Да Время создания сообщения

Пример

{
  "event_id": "69f3ae14-1a2b-3c4d-5e6f-7890abcdef01",
  "event_type": "property.review.request",
  "tenant_id": 1,
  "data": {
    "property_id": 42,
    "from_status_id": 1,
    "to_status_id": 2,
    "unresolved_references": null
  },
  "timestamp": "2026-02-17T12:00:00"
}

Правила

  1. Все сообщения используют единый формат конверта — без исключений
  2. Поле event_type всегда совпадает с AMQP routing key
  3. Бизнес-данные всегда в поле data, а не на верхнем уровне
  4. tenant_idinteger или null. Не пустая строка, не отсутствует
  5. event_id — UUID v4 в строковом представлении

Сериализация

  • Все значения datetime сериализуются в формате ISO 8601 (2026-02-17T12:00:00)
  • UUID сериализуются как строки
  • None передаётся как JSON null
  • Кодировка — UTF-8