Здравствуйте! Есть маленький сервис написанный на Django. Общая суть - пользователь с балансом балов и таблица списания/зачисления балов. При действии с баллами, обновляется поле баланса у пользователя, плюс при списании проверяется есть ли баланс у пользователя. В виду возможных нагрузок и вообще, реализованы django transaction.atomic (чтобы все или ничего) и select_for_update чтобы блокировать баланс на время списания.
Фишка в том сервис должен быть доступен всегда, но фактически он может простоять месяц без дела.
Появилась идея (в большем для интереса) перевести его как serverless (Lambda + DynamoDB)
Подскажите пожалуйста, с DynamoDB возможно реализовать похожее?
Иван Шумов
@inoise Куратор тега Amazon Web Services
Solution Architect, AWS Certified, Serverless
Транзакций в DDB нет, но вы можете придумать другую схему взаимодействия. В Cloud, особенно в AWS, при переезде необходимо понимать что в этом мире другие правила игры и традиционная архитектура - дорого и болезненно. Вы можете создать для вашего случая события на эвентах через lambda. Например записывать изменение баланса в таблицу, событием отправлять в lambda и там обрабатывать исключения. Это асинхронный мир