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

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

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

Задля запобігання блокування основного потоку виконання використовується принцип розділення публікації події про необхідність виконання операції від фактичного її виконання з використанням 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"

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

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

notifications starter

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

bp-notification-flow