US 11,789,972 B2
Data synchronization for content consumed via a client application
David Andrew Killian, Seattle, WA (US); Benjamin Ralph Hollis, Seattle, WA (US); and Bradley Baron, Seattle, WA (US)
Assigned to Snap Inc., Santa Monica, CA (US)
Filed by Snap Inc., Santa Monica, CA (US)
Filed on Mar. 18, 2021, as Appl. No. 17/205,877.
Claims priority of provisional application 63/003,145, filed on Mar. 31, 2020.
Prior Publication US 2021/0303592 A1, Sep. 30, 2021
Int. Cl. G06F 16/27 (2019.01); G06F 16/21 (2019.01)
CPC G06F 16/27 (2019.01) [G06F 16/219 (2019.01); G06F 16/273 (2019.01); G06F 16/275 (2019.01); G06F 16/278 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by one or more computing devices of a server system, a version of content from a first client device, the version of the content comprising a message in a communication session between a sender and one or more recipients and the communication session being established using messaging functionality of a client application;
determining, by the one or more computing devices, the one or more recipients of the version of the content;
determining, by the one or more computing devices, a version identifier corresponding to the version of the content;
storing, by the one or more computing devices, the version of the content and the version identifier in a data structure, the data structure having one or more first data elements that store content data corresponding to one or more versions of the content and one or more second data elements that store version data corresponding to one or more version identifiers of the one or more versions of the content, wherein the one or more second data elements are associated with one or more permissions that restrict access by the first client device and a second client device to the version data stored by the one or more second data elements;
sending, by the one or more computing devices, the version of the content to the second client device of a recipient of the one or more recipients;
receiving, by the one or more computing devices, a content synchronization request from the second client device, the content synchronization request indicating a previous version identifier of a previous version of the content that precedes the version of the content, wherein the previous version of the content comprises an additional message in the communication session that precedes the message;
determining, by the one or more computing devices and based on a difference between the version identifier and the previous version identifier, one or more intervening versions of the content that are between the version of the content and the previous version of the content, wherein the one or more intervening versions of the content comprise one or more further messages of the communication session that are between the message and the additional message;
sending, by the one or more computing devices, the one or more intervening versions of the content to a second client device; and
sending, by the one or more computing devices, one or more version update commands to the second client device to update additional version data for the content.