Інтеграція з сервісом повідомлень
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
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. Інтеграція механізмів відправлення повідомлень у Сервіс виконання бізнес-процесів
В основу рішення покладено використання Camunda-концепції Java Delegate для виконання операцій по відправці повідомлень з бізнес-процесу. Спрощення досвіду моделювання реалізовано за допомогою окремих типових розширень.