僕がやっているのは、すべてのリレーを最終的には集合するけど、各リレーごとにカーソルを保持して一旦集合したもので created_at でソート。これで一旦確定し、フィードに流す(ユーザー体験ですぐ見せる)
その後に、フィードを上からスキャンして前後のフィードの created_at の差分 n を比較し、例えば10分の差があれば「ここに本来取りこぼしているフィードがあるはず」と仮定し、その created_at で試しにもう一回問い合わせる。
この場合、フィードが見つかれば注入する。
これを繰り返して n をどんどん小さく循環していくと収束するので、歯抜けのフィードにならなくなる。
あとは最下部に来たときもおなじように処理をする。
その後に、フィードを上からスキャンして前後のフィードの created_at の差分 n を比較し、例えば10分の差があれば「ここに本来取りこぼしているフィードがあるはず」と仮定し、その created_at で試しにもう一回問い合わせる。
この場合、フィードが見つかれば注入する。
これを繰り返して n をどんどん小さく循環していくと収束するので、歯抜けのフィードにならなくなる。
あとは最下部に来たときもおなじように処理をする。