Інтеграція з сервісом повідомлень

Загальний опис підходу до інтеграції

Задля запобігання блокування основного потоку виконання використовується принцип розділення публікації події про необхідність виконання операції від фактичного її виконання з використанням publish-subscribe підходу, реалізованому за допомогою Kafka. З повним переліком, налаштуваннями та структурами об’єктів подій можна ознайомитись за посиланням.

Для спрощення інтеграції реалізовано окрему бібліотеку ddm-starter-notifications, яка надає Java API для публікації запитів на відправлення повідомлень.
Приклад налаштувань сервісу для публікації подій через Kafka-топік (на прикладі використання ddm-starter-kafka бібліотеки)
data-platform:
  kafka:
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
      custom-config:
        "[enable.idempotence]": true
    topic-properties:
      creation:
        enabled: true
        timeout-in-seconds: 60
      retention:
        default-in-days: 7
        num-partitions: 1
        replication-factor: 1
    error-handler:
      initial-interval: 1500
      max-elapsed-time: 6000
      multiplier: 2
    topics:
      "user-notifications": "user-notifications"

Приклади інтеграції згідно сценаріїв використання

Інтеграція механізмів відправлення повідомлень у Сервіс виконання бізнес-процесів

notifications starter

В основу рішення покладено використання Camunda-концепції Java Delegate для виконання операцій по відправці повідомлень з бізнес-процесу. Спрощення досвіду моделювання реалізовано за допомогою окремих типових розширень.

bp-notification-flow

Інтеграція механізмів відправлення повідомлень для службового використання сервісами реєстру

upstream-notification-flow