транзакций (не транзакции базы).
Случай: пользователь создал бронирование (pre-confirmation), авторизировались средства через Stripe. Далее, нам нужно завершить бронирование, мы должны подтвердить бронирование через вендор и затем сделать capture авторизированых средств. Но вот, например, бронирование не прошло, у Stripe по дефолту удержание авторизированных средств занимает до ~7 дней. Со стороны UX это очень печально, поэтому мы должны превентивно подавать запрос на отмену транзакции. Есть 2 варианта это сделать:
1. Использовать rollback механизм для того, чтобы в случае ошибки сервиса отменить транзакцию и вернуть пользователю моментально средства
2. Использовать ttl expiration eviction механизм, у нас все айди платежей хранятся в TTL кеше in-memory. Мы можем настроить callback функцию, чтоб при истечении срока записи ключа - автоматически отменялась транзакция по paymentID записи
У 1 подхода есть недостаток: много дублирующего кода, даже если сделать wrapper, то прийдется на каждый условный if err != nil вызывать врапер
У 2 подхода есть также недостатки: платеж будет отменен только через установленный на ключе ttl expiration = 30m (когда будет key eviction), если вдруг крашнеться сервер то все ключи будут удалены без отмены платежей
Что посоветуете в этом случае? Возможно есть иные варианты?
использовать воркфлоу движок
Можно пожалуйста поподробней? Впервые слышу о таком
можете прочитать в инете
Очень размытое объяснение, конкретных линков на статьи в моем кейсе нету?
конкретных юзкейсов не было, нету и не будет, есть тулза которую настраиваешь под свой кейс
Обсуждают сегодня