per darti una semplice risposta, se la richiesta è asincrona aldilà dello script lato client, i post e lo stato di questi ultimi sono tutte informazioni prese dal sever. Quindi immagina di avere un db con i post e per ogni post ci siano almeno i seguenti dati:
-id
-testo
-datacondivisione

per ogni utente ci siano almeno i campi:
-id


Per ogni post e utente che può avervi accesso ci siano i campi
-utente_id
-post_id
-stato

A questo punto la richiesta ascincrona non ha che da prendere gli ultimi post (per data) che abbiano lo stato impostato su 'non visto' per l'utente con id pari all'id dell'utente loggato.

E' più database e script lato server che altro, e ovviamente è un modello semplificatissimo rispetto a ciò che sta dietro a facebook.