Size: a a a

Camunda BPM Group

2021 February 15

AP

Alexander Pezikov in Camunda BPM Group
ну, все равно он знает, что есть что-то, что надо оповестить и таким образом становится зависимым. А хотелось бы, чтобы он знал только о своей БД и ни о чем больше
источник

AP

Alexander Pezikov in Camunda BPM Group
как бы сущности нижнего уровня не должны зависеть от сущностей верхнего уровня
источник

EZ

Edward Zakharov in Camunda BPM Group
Ну интегрируйтесь через бд тогда 🤪🤣
источник

AP

Alexander Pezikov in Camunda BPM Group
Dmitrii Pisarenko
> сервис, который должен принимать json теперь должен знать и о существовании камунды

Сервис должен знать только адрес REST-движка Камунды, по которому он будет отправлять валидные JSON-ы.
ну и, кстати, это уже начинает походить на хореографию, а не оркестрацию
источник

DK

Denis Kotov in Camunda BPM Group
Edward Zakharov
Ну интегрируйтесь через бд тогда 🤪🤣
источник

EZ

Edward Zakharov in Camunda BPM Group
Alexander Pezikov
ну, все равно он знает, что есть что-то, что надо оповестить и таким образом становится зависимым. А хотелось бы, чтобы он знал только о своей БД и ни о чем больше
Ну либо еще как вариант тогда через очередь посылать сигнал камунде на старт
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Alexander Pezikov
ну, все равно он знает, что есть что-то, что надо оповестить и таким образом становится зависимым. А хотелось бы, чтобы он знал только о своей БД и ни о чем больше
> только о своей БД

А что за база данных у сервиса, который только валидирует JSON-ы и запускает процессы?
источник

AP

Alexander Pezikov in Camunda BPM Group
как я это вижу: есть набор сервисов с базами данных. Они ничего не знают друг о друге и о камунде. И есть над ними камунда, смысл которой гарантировать eventual consistency между этими сервисами.
Сервисы с БД: отгрузки и задачи. Пользователь загружает свои данные, закрывая задачу и вместе с тем разблокирует отгрузку.
Пользовательский запрос прилетакет в BFF, из BFF в камунду, камунда отправляет запрос в сервис задач, там выполняется проверка, задача закрывается, следом камунда отправляет запрос на разблокировку отгрузки и счастливому пользователю уходит ответ, что все в порядке
источник

AP

Alexander Pezikov in Camunda BPM Group
Dmitrii Pisarenko
> только о своей БД

А что за база данных у сервиса, который только валидирует JSON-ы и запускает процессы?
а какая разница? postgres
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Alexander Pezikov
а какая разница? postgres
Я имел в виду, что сервис, который проверяет JSON может быть stateless. Ему база данных на мой взгляд не нужна.
источник

AP

Alexander Pezikov in Camunda BPM Group
а вот тут очень тонкий момент: иногда может быть необходимость сохранить данные в таблицу с уникальным индексом. И можно сколько угодно валидировать во вне, но все равно потом упадет при записи в БД
источник

ММ

Максим Монин... in Camunda BPM Group
Александ, я подобную задачу решал комплексом... Камунда + обвязка вокруг нее. Камунда вызывает сервисы. Но сама имеет ещё кроме бд обвязку в виде redis, и некой точки комуниции. Которпя называется gate. Для всех сервисов все приходит на gate. Там указывается вызов процесса асинхронный или синхронный, если задание короткое и можно подождать. Если асинхронное мы шлем в ответ из запущенного процесса и позже можем опросить статус по id. А если синхронный, ждём сигнал process end делаем запрос к камунде снова к БД history и возвращаем ответ.
источник

AP

Alexander Pezikov in Camunda BPM Group
да, именно это и надо)
источник

AP

Alexander Pezikov in Camunda BPM Group
я немного удивлен, что у камунды нет такого поведения
источник

ММ

Максим Монин... in Camunda BPM Group
Есть zeebe
источник

ММ

Максим Монин... in Camunda BPM Group
Там есть start process withresult
источник

AP

Alexander Pezikov in Camunda BPM Group
а у zeebe же не posgtres?
источник

ММ

Максим Монин... in Camunda BPM Group
То есть там не нужно делать отслеживание
источник

AP

Alexander Pezikov in Camunda BPM Group
Максим Монин
Александ, я подобную задачу решал комплексом... Камунда + обвязка вокруг нее. Камунда вызывает сервисы. Но сама имеет ещё кроме бд обвязку в виде redis, и некой точки комуниции. Которпя называется gate. Для всех сервисов все приходит на gate. Там указывается вызов процесса асинхронный или синхронный, если задание короткое и можно подождать. Если асинхронное мы шлем в ответ из запущенного процесса и позже можем опросить статус по id. А если синхронный, ждём сигнал process end делаем запрос к камунде снова к БД history и возвращаем ответ.
я правильно понимаю, что gate просто долбится в камунду опрашивая ее на завершения process-instance?
источник

ММ

Максим Монин... in Camunda BPM Group
в начале я так и сделал - давал запрос а потом просто долбил, а потом переделал - через redis и процесс end
источник