привет
есть у меня регулярно на продакшне ошибка, я не могу придумать ей архитектурное решение:
есть state, это формула
у формулы есть составляющие и их количество.
интерфейс предполагает, что пользователь делая разные шаги - изменяет формулу.
- добавив пигмент
- удалив пигмент
- изменив количество пигмента в формуле
каждый шаг - я пишу. т.е. есть история шагов.
шаги пишутся в localStorage, и на сервер отправляются с debounce в 2 секунды.
как только шаги сохранились на сервере, из localStorage я их, естественно удаляю.
проблематика в том, что в связи:
- с закрытием вкладки браузера
- пропал интернет у пользователя
некоторые шаги могут не сохранятся, или сохранятся но в неправильном порядке
А это очень критично - что бы шаги сохранялись в правильном порядке, и конечно, что бы они вообще сохранялись.
Я придумал, нумеровать шаги на клиенте. Т.е. я при добавлении нового шага в localStorage, инкрементирую logKey.
И на сервере, проверяю порядок logKey. И это мне дало регулярные ошибки о том, что порядок шагов не совпадает.
Может есть какие-то общепринятые практики, как соблюдать порядок сохранения данных?
Я уже думаю, может здесь как раз место для использования блокчейна?
Т.е. важность сохранения одного звена за другим.