Обычно помогает помогает простая нумерация запросов.
Например у вас есть табличка или nosql документ с условным названием hp_history - история изменения здоровья.
id| hp | action | value | timestamp
1 | 2|...|...|nnnn1
2| 1 | урон | 1 |nnn28
3| 10| лечение | 10 |nnn34
4| 9 | урон | 1 | nnn35
В данном случае порядок очевиден. Текущее значение можно хранить явно, а можно вычислять как сумму изменений (урон в этом случае должен быть отрицательным). Выбирайте, что подходит по производительности.
Также возможно не нужно хранить всю историю изменения здоровья, а только последнюю ее часть, текущий бой.
В критической ситуации, типа возможной смерти персонажа, стоит сделать синхронный запрос, чтобы убедиться, действительно ли он умер.