Шина событий
Шина событий — это архитектурный компонент, через который различные части системы обмениваются сообщениями о произошедших фактах (событиях), не зная друг о друге напрямую. Модуль-писатель (publisher) публикует событие «в шину», а модуль-подписчик (subscribers/consumers) читает его, чтобы получить новые данные.
«Очередь» событий различных модулей GRC перед перекладыванием их в Kafka-топики хранится в схеме event_bus в таблице outbox.
Ниже приведен перечень событий, которые попадают в шину событий:
Модуль системы | Наименование события | Кодовое обозначение события |
|---|---|---|
Модуль пользовательских скриптов | Событие о старте ПС |
|
Событие о завершении ПС |
| |
Конструктор пользовательских сущностей | Событие о создании экземпляра пользовательской сущности |
|
Событие об изменении экземпляра пользовательской сущности |
| |
Событие об удалении экземпляра пользовательской сущности |
| |
PTMS | Событие об инициализации экземпляра процесса |
|
Событие о старте исполнения экземпляра процесса |
| |
Событие по завершению исполнения экземпляра процесса |
| |
Событие по запросу на прерывание исполнения экземпляра процесса |
|
Наименование | Тип данных | Описание |
|---|---|---|
event_id | UUID v4 | Уникальный идентификатор |
event_name | UUID v4 | Название события. Генерируется согласно следующему шаблону:
grc.user_scripts.script.started.v3 |
event_version | string | Версия события. В текущей реализации для системных событий версия всегда 1.0 |
timestamp | datetime | Дата и время возникновения события |
payload | json | Полезные данные события. Передаваемые данные отличаются в зависимости от модуля, в котором происходит событие |
Ниже приведено описание полезных данных события, передаваемых в структуре сообщения. Передаваемые данные отличаются в зависимости от модуля системы.
Наименование | Тип данных | Описание |
|---|---|---|
code | string | Код пользовательского скрипта |
comment | string | Комментарий |
arguments | json | Аргументы, с которыми был запущен ПС |
run_id | int | Идентификатор запуска |
source | string | Источник:
|
status | string | Статус события:
|
meta_data | json | Метаданные PTMS |
Наименование | Тип данных | Описание |
|---|---|---|
entity_code | string | Код пользовательской сущности |
entity_before | string | поля и их значения экземпляра до события. В случае события создания поле остается пустым |
entity_after | json | Поля и их значения экземпляра после события. В случае события удаления поле останется пустым |
Наименование | Тип данных | Описание |
|---|---|---|
instance_id | int | Идентификатор экземпляра процесса |