Abstract: Techniques are disclosed for solving deliverability issues of HTTP long polling push messages in a multi-server environment. When a push server generates a push event to be sent to a client web browser, the push server affixes an identifier and a timestamp to the push event. The client web browser application retains all recent push event identifiers in a list, and the push server retains all recent push events in memory. When the client web browser application requests a subsequent push connection, the browser application sends the list of event identifiers to the push server. Using this list, the push server evaluates which of these identifiers corresponds to the earliest event, and from there generates a list of push events that have occurred after that earliest event. Then, the push server compares this generated list with the browser application's list of identifiers for missing events in the identifier list. The push server delivers all missing events to the client web browser application.
Abstract: Techniques are disclosed for generating a web-based user content feed given a set of sort and filter criteria. Upon receiving such criteria from a client web browser application, a feed server merges a first feed object and a second feed object having subsets of metadata deriving from a feed item table in the database. The feed server performs the sort, filter, and search operations on the sortable list and retrieves the full metadata from the database. The feed server returns the result to the client web browser application, which displays the content feed to a user.