Forgive me if the following seems too general, but I tried to keep it at a high level to fit your question. I do not know if what you are looking for will be called a “design template” as such. It looks like you are looking for a synchronization paradigm / system. Please note, my assumption in this answer is that you need to have both online and offline features for your application (since you explicitly mentioned synchronization.) If I'm wrong, let me know.
In particular, what you are probably looking for is usually implemented using two things: 1) a "distributed" database (working offline on client applications such as mobile applications, as well as on any servers) and 2) the mechanism synchronization and conflict resolution.
A very good example of this is the Git source code management tool. Git has both of the above characteristics. Firstly, it uses a database (for example, the Git project file system), which can be distributed (for example, a project can be cloned from one developer's workstation to another and work independently). Secondly, it has a synchronization mechanism and a conflict resolution mechanism, that is, if I try to synchronize (e.g. pull) from a colleague's workstation, the differences between its code and my code can be combined (automatically or manually).
Another example, and perhaps more important for your application, is Evernote. If I'm not mistaken, Evernote uses the same paradigm (flat file database) to synchronize documents, as well as desktop clients, website and mobile clients.
This does not mean that you need to use a flat file database. You could easily use a relational or other database. In addition, depending on what data you are trying to save and synchronize, you can avoid a very simple conflict resolution. (For example, if you just save status updates, count the number of votes, etc. Maybe you just select the newest entry in the database.)
In short, the tools I mentioned seem to follow this kind of workflow:
- When you start a session in the client application, synchronize or "update" the client by going to the Internet and pulling new data. Here you define and resolve conflicts between data on the client and what is on the server or the "cloud".
- Edit or create offline data on the client, whether it’s a website, a mobile application, etc.
- Synchronize or "update" the cloud by going to the Internet and clicking on the data that you changed.