Метод (Event Handler) AppendAuditLog

Домен: PMA | Сервис: bupar-audit-service | Тип: Kafka Consumer

Общее описание

Асинхронный метод-обработчик (Event Handler) AppendAuditLog развернут внутри технологического микросервиса bupar-audit-service. Он отвечает за построение сквозного лога событий (Event Log) для подсистемы Process Mining, фиксируя операционную цепочку выполнения бизнес-процессов на платформе умного холодильника.

Критические задачи метода

  1. Трассировка жизненного цикла инвентаря: Фиксация системного статуса PRODUCT_BATCH_PURCHASED для конкретного кейса (пользовательской сессии).
  2. Сбор технологических метрик: Логирование временных интервалов прохождения запроса от момента ручного ввода на шлюзе до фактического распределения по воркерам.

Протокол взаимодействия (Event Contract)

  • Имя метода: AppendAuditLog
  • Брокер сообщений: Apache Kafka
  • Входной топик (Subscription): bpds.mdm.out.product.templated
  • Формат данных: application/json

Диаграмма последовательности (Поток Аудита Process Mining)

sequenceDiagram
    autonumber
    participant K as Kafka: ...product.templated
    participant Bupar as bupar-audit-service
    participant DB as ClickHouse (bupar_db)

    K->>Bupar: Шаг 9: Handler: AppendAuditLog()
    activate Bupar
    Note over Bupar: Шаг 9.1: Извлечение trace_id как case_id<br/>Маппинг статуса PRODUCT_BATCH_PURCHASED
    Bupar->>DB: Шаг 9.2: SQL: INSERT INTO process_event_log
    deactivate Bupar


Расшифровка шагов метода по канону

Шаг Действие Параметры / Запросы / DTO Ошибки (Исключения / Статусы)
9 (K -> Bupar) Сервис процессной аналитики параллельно вычитывает шаблон транзакции для записи следа в лог аудита. Kafka Ingress Payload:
{ "trace_id": "req-manual-text-99aa", "user_id": "usr_9876", "timestamp": "2026-08-07T10:23:00Z" }
Бизнес-ошибки отсутствуют
9.1 (Bupar -> Bupar) Внутренняя логика: Маппинг метаданных Kafka-события в плоскую структуру лога Process Mining (case_id = trace_id). Определение целевой активности. Внутренний маппер:
AuditEventConverter.toActivityLog(payload)
IAD-PMA-400 (отсутствует trace_id в метаданных события, невозможно восстановить case_id процесса)
9.2 (Bupar -> DB) Запись сформированной строки события в аналитическое хранилище ClickHouse для последующей визуализации графа процессов. SQL-запрос:
INSERT INTO process_event_log (case_id, activity, user_id, timestamp) VALUES ('req-manual-text-99aa', 'PRODUCT_BATCH_PURCHASED', 'usr_9876', '2026-08-07 10:23:00');
Бизнес-ошибки отсутствуют