Как сохранить данные при падении сервера?
Никак. Если сервер лежал - значит те кто отправляли данные просто не смогли до него достучаться.
Если Вам необходимо построить отказоустойчивую систему - необходимо переходить на мультисерверную конфигурацию с использованием например failover ip.
(можно использовать вместо этого Amazon route53 + health check но будет частичный простой ~10 минут в случае выхода из строя физического сервера)
Поскольку failover ip это некоторый гемморой - мы делали так:
Ставятся 2 front сервера с failover. Они проверяли живы ли backend ноды и перенаправляли запросы туда.
В случае выхода из строя одного из front - он подменялся по failover. 
В случае выхода из строя одного из back - он автоматически исключался из раздачи на фронтах
1. Отправляйте данных аяксом и сохраняйте все запросы в стеке. Если запрос не прошёл сейчас - повторить через минуту. гугло-почтовик так пытается отправить или прочитать что-нибудь когда сеть ненадолго отключилась.
2. Сохраняйте копию отправляемых данных в LocalStorage браузера. Если не удалось отправить сейчас - отправьте в следующий раз, когда пользователь браузером на тот же сайт зайдет. Забыл как такая технология называется. Google Mail Offline и Google Docs Offline так работает