1. A method for synchronizing a database with data stored at clients, comprising: receiving a collaboration change to a collaboration document from a collaboration user from among a plurality of collaboration users in multiple collaboration groups at said clients; caching said collaboration change in a client side cache to provide client side cached data at said client; pushing said cached data to update said collaboration document displayed to said plurality of collaboration users, wherein said collaboration document is a synchronized collaboration document that is synchronized based on any updates provided by said plurality of collaboration users and said database; saving said collaboration change from said cached data in said database; receiving by said database a first, new database change from an external application that is external to said database and to said client while said plurality of collaboration users are collaborating on said collaboration document, wherein said database, said collaboration document, and said external application are separate, and wherein said external application provides a second new database change while said collaboration users are not collaborating on said collaboration document; pushing said second, new database change to a set of client event queues for said plurality of collaboration users in said multiple collaboration groups at said clients, wherein said second, new database change is saved as a single instance within said set of client event queues, and wherein a reference of said single instance is provided to each of said client event queues in said set of client event queues; pushing said second, new database change to said plurality of collaboration users in said multiple collaboration groups at said clients; and in response to said pushing, deleting said single instance.