What do I do when my backend is not in sync anymore with what the user sees on the UI?
The Problem
- I have a live data feed
- Users load 50 items on the home page and click load more to scroll infnitely
- As new data comes in every minute, I also push this new data to each user via websockets
- The user could be disconnected temporarily and they would miss a few updates and then they could reconnect in which case they would be OUT of SYNC with the backend
- The way I thought I would fix this problem is to get the timestamp of the last item they have on their UI
- Whenever the connection opens, I would send ALL the items from that timestamp till current time to each user
- There is however a risk here
- My server could be down for maintenance for a few hours when doing upgrades and on connecting back I would have to send 10000s of items to each user potentially causing the server to crash
- The remedy that I thought of is to keep a time limit say 4 hours, if it has been more than 4 hours since the last item the user has on their UI, I would reset the UI completely
So the question is, how do I deal with this?
- Dont do anything, let there be that risk of server crash
- Clear the user s UI completely without asking the user even if they scrolled down 1000 items on their screen
- Keep a limit of say 50 items or so and send those 50 items, if it has been more than 4 hours, tell the user they may be out of sync and they need to refresh the page
- Any suggestions?