Формат сообщений
Общая структура
Все сообщения публикуются в формате 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"
}
Правила
- Все сообщения используют единый формат конверта — без исключений
- Поле
event_typeвсегда совпадает с AMQP routing key - Бизнес-данные всегда в поле
data, а не на верхнем уровне tenant_id—integerилиnull. Не пустая строка, не отсутствуетevent_id— UUID v4 в строковом представлении
Сериализация
- Все значения
datetimeсериализуются в формате ISO 8601 (2026-02-17T12:00:00) UUIDсериализуются как строкиNoneпередаётся как JSONnull- Кодировка — UTF-8