A non-transitory computer-readable storage medium having stored thereon program code instructions that, when executed by a server computer system, cause the server computer system to perform a method comprising:
- receiving, by a server of a message management service, a plurality of messages from a message server of a messaging service, wherein each message of the plurality of messages comprises an external identifier set by the message server;
- selecting, by the server of the message management service, a set of messages from the plurality of messages based on one or more criteria, wherein the set of messages is less than a number of messages of the plurality of messages;
- storing, by the server of the message management service server, the set of messages in a message management service window, the set of messages comprising at least a first message;
- obtaining, from a client device, a set of synchronization data bundles, each synchronization data bundle in the set of synchronization data bundles corresponding to a different one of a plurality of messages stored by the client device, and where each synchronization data bundle includes an internal message identifier generated by the server of the message management service for the corresponding message and the external message identifier for the corresponding message;
- determining, based at least in part on the synchronization data bundles, whether one or more of the plurality of messages stored by the client device is absent from a message management service window;
- and
- for each one of the plurality of messages stored by the client device that is absent from the message management service window:
- extracting, from the synchronization data bundle corresponding to the message that is absent from the message management server window, the external message identifier assigned to the message by a messaging service;
- using the external message identifier to retrieve the message from the messaging service;
- adding the retrieved message to the message management service window;
- receiving, from the client device, a set of queued action requests;
- defining a reconciled message window based at least in part on a current state of the message management service window, wherein a number of messages in the reconciled message window exceeds a nominal maximum size of the message management server window;
- updating the message management server window to correspond to the reconciled message window, such that the message management server window temporarily exceeds the nominal maximum size;
- and
- sending, to the client device, an instruction to update the messages stored thereon to conform to the reconciled message window.