I don't mark events as read in the app. I only store the latest date per "route". The notifications tab gets only one date of the last time the user was there. Each chatroom gets its own date and so on. Saving to disk all the time as the user scrolls is too heavy.