У меня есть веб-крючок для получения событий Stripe и создания новых счетов соответственно. В соответствии с местным законодательством я должен самостоятельно генерировать номера счетов и не могу использовать идентификаторы Stripe. Это последовательные уникальные идентификаторы.
Я только что столкнулся с проблемой параллелизма, поскольку одновременно получил 2 события "новый черновик счета" от Stripe. Оба события генерировали один и тот же номер счета, но, естественно, второе не могло быть вставлено в базу данных PostgreSQL, и Stripe повторил попытку позже.
Номера счетов в основном выглядят так: YYYY-XXXXX, где YYYY - год, и XXXXX - порядковый номер, начиная с 00001 для первого счета за год. Если последний номер был 2020-00017, следующим не может быть ничего, кроме 2020-00018.
Так что это вроде работает, но не кажется идеальным. Вы знаете какое-нибудь лучшее решение, чем позволить Stripe повторить попытку?