Классы сообщений
Класс сообщения — тип передаваемого через шину сообщения. Каждое сообщение принадлежит ровно одному классу, и этот класс определяет, как сообщение маршрутизируется и какой обработчик его применяет на стороне приёмника.
Что описывает класс
Класс — это идентификатор типа в рамках компании. На уровне шины класс минималистичен: у него есть наименование (уникальное в компании) и описание для людей. Никаких структур, схем, обязательных полей в личном кабинете шины не задаётся.
Содержательная сторона — структура payload, правила валидации, согласование версий — живёт вне шины: в проектной документации обмена и в коде клиентских модулей. Шина оперирует классом как ярлыком: «это сообщение типа X», без интерпретации его содержимого.
Где используется класс
Одна и та же запись о классе используется:
- На стороне отправителей — для маркировки формируемых сообщений.
- На стороне приёмников — для выбора обработчика.
- В личном кабинете шины — для построения маршрутов и фильтрации логов.
Наименование
Наименование класса — свободное, выбирается администратором. Например: Catalog_Контрагенты, Document_РеализацияТоваровУслуг, Catalog_ПричиныДефектов.
Наименование стабильно: оно попадает в служебные данные каждого сообщения этого класса и в обработчики приёмников. Переименование класса задним числом — серьёзная операция; обычно вместо переименования заводят новый класс и постепенно мигрируют участников.
Что НЕ задаётся в классе
- Структура payload, обязательные/опциональные поля, типы значений — это контракт между участниками обмена, фиксируется проектной документацией, не записью в личном кабинете.
- Версионирование — отдельной модели версий у класса в DataHUB нет. Если требуются несовместимые изменения, обычно заводят новый класс рядом со старым и постепенно мигрируют маршруты.
Поведение при отправке
Когда отправитель публикует сообщение, шина в первую очередь проверяет, существует ли в компании указанный класс. Если класса нет — отправитель получает ошибку, сообщение не принимается. Если класс есть — шина смотрит маршруты для этого класса и раскладывает копии сообщения по очередям подписанных получателей.
При этом ни одна система не получает «по умолчанию» сообщения какого-либо класса. Для каждого потока нужен явный маршрут.
Что дальше
- Компании — где живут классы (каждая компания — свой набор).
- Маршруты — как класс связывается с системами-участниками.
- Обработчики интеграции — что делает с сообщением приёмник, опираясь на класс.
- Структура сообщения обмена — где в сообщении хранится идентификатор класса.