У меня есть набор бизнес-процессов, которые, на мой взгляд, хорошо подходят для AWS SWF.
Некоторые из этих процессов включают периоды ожидания, которые могут составлять от недели до 3 месяцев. Пример (краткий и не полностью объясненный) может быть примерно таким: «Если пользователь подписывается на определенную услугу, если он все еще подписывается через 4 месяца, отправьте ему некоторую форму вознаграждения».
Я собираюсь смоделировать это, начав процесс регистрации с рабочего процесса, который затем установит таймер на 4-месячный период ожидания.
Проблема заключается в том, что если подписчик отменяет свою подписку в течение этого 4-месячного периода, мы не хотим отправлять вознаграждение.
Я вижу два способа сделать это: иметь сигнал «отменить» при отмене (который остановит «спящий» рабочий процесс) или иметь решение «проверить подписку» до шага «отправить вознаграждение» (т. Е. После рабочего процесса » просыпается"). (Очевидно, я мог бы сделать и то, и другое, для подхода «пояс и подтяжки»)
Есть ли здесь какие-либо рекомендуемые передовые практики? Существует вероятность того, что несколько десятков тысяч этих различных бизнес-процессов могут быть активными или неактивными одновременно.