Я бы попытался уточнить дополнительные нефункциональные требования, например, что это значит немного меньше? Потому что 5 записей меньше или 5 000 записей меньше, это большая разница. И есть ли какие-то конкретные c требования ко времени отклика? И есть ли какие-либо требования к кодам ваучеров.
Первое решение, которое приходит мне в голову, - это просто использовать функцию Lambda с некоторой функцией ha sh из электронной почты в качестве кода ваучера. Таким образом, мы гарантируем, что одно и то же письмо всегда будет получать один и тот же код ваучера, поэтому нет необходимости проверять хранилище.
Затем вы можете настроить, чтобы ваша лямбда не масштабировалась больше, чем (порог), параллельно и до токеном вы можете проверить количество уже зарегистрированных писем, что оно меньше или равно 10М-порогу. Где порог - это количество одновременных функций.