Според мен тази функция трябва да се обработва от страна на сървъра, особено ако очаквате потребителите да използват множество типове клиенти (напр. браузър, телефон и т.н.)
Всяко от вашите събития трябва да има клеймо за време, за да знаете кога се е случило всяко събитие и за да можете да извършвате съответно търсене на диапазон, в случай че трябва да получите, например последните 24 часа събития, или събития след времеви печат X.
След това, когато потребителят, който следва друг потребител, погледне нейните известия, можете да зададете времева марка като контролна точка, за да знаете до кое събитие този потребител вече е видял и след това да покажете само събитията, които са след тази контролна точка.
Начинът, по който внедрих таймсерии в REDIS в един от нашите проекти, е като използвам сортирани набори (http://redis.io/topics/data-types#sorted-sets). Във вашия случай можете да съхранявате:
user1EventsKey -> [{ts1, eventKey1}, {ts2, eventKey2}, {ts3, eventKey3},... ]
# This is the sorted set
eventKey1 -> [photo1, photo2, photo3]
eventKey2 -> [photo4, photo5]
...
user2Checkpoint -> tsA #where ts2 < tsA < ts3
Сега знаете, че следващия път, когато user2 прегледа известията, ще покажете само събитията след tsA, като използвате ZRANGEBYSCORE user1EventsKey ts2 +inf
за да получите всички ключове за събития и след това едно по едно можете да покажете събитията.
PS Печатът за време може да се съхранява във формат UNIX.
Надявам се това да помогне.