I'm building a meeting app where users can create, join (by invite), and edit events like meetings, outings etc. Think What's app chat groups. So I'm looking into designing how the android app would stay in sync with any new or updated events that the user belongs to. Any ideas how to design this?
I have a few ideas:
1) In the database I can save all the events with a last modified date. Then when I resume the app, I will fetch all events with a last modified date greater than the last time I fetched for events. However for real time I'd need a way to push updates.
2) Use GCM and save the notifications in a local database. I can save the IDs of the events that I receive from the notification and then make a request to the server. Or I can just have the GCM pass the entire event object and save myself a server call. But I'm a bit concerned about relying on GCM this much. If any GCM notification fails, the user will never get the event.
3) Have a queue table for event transactions in the server database. Then the user can grab all the transactions and make a request to the server to grab the new/changed data. However, this seems very expensive and tables could get huge.
What do you think of these methods? Or do you think there are better ways?