Вопрос простой.
Понятно, что если есть один сервис, который просит списать или положить бабло, то мы просто апдейтим запись. Е сли деклаин тоже апдейтим запись
А если таких сервисов 4 или 5?
То может быть таоке что в единицу времени ежечасно я заапрувил и снял деньги для одного сервиса(то есть сперв азабронировал денбги а потмо списал), а второй раньше забронировал и потом надо списать, то уже писывать нечего так как первый списал ранее.
Конкурентое списнаие денег баланса... Что тогда делать? Это задача базы или всё же решается в коде?
Лично я бы попробовал:
1. Нормально спроектировать базу
2. Написать правильно работающие сами по себе операции
3. Использовать transaction isolation level = serializable
...
4. Profit (не надо думать о "конкурентных списаниях" и прочей низкоуровневой / не относящейся к бизнес-требованиям ерунде).
"Общий" совет, конечно — но конкретных примеров Вы тоже не показали. ;)