Just speculating but, as new posts are made, it pushes the other posts up some, which can make them show up again when you hit next (or hit the infinite scrolling reload point).
The naive way to do pagination is to say show me items x through y. But obviously if the back end is dynamic, x through y could change. So the better way to program pagination is to say show me items above item n, too item n plus x, where n is a specific post rather than an index. Then you can have dynamic pagination based on the last comment, you saw.
Another way to do this is have your session look at a static snapshot of the dynamic database, until you refresh the page or go back to the top. This is possible with a lot of different databases, kind of like how ZFS can give you snapshots of root at any time.
I don't know if it is lazy as much as it is a design choice - remember at one point Lemmy actually auto updated (which meant posts were pushed down while you were browsing) and it was an intentional design.
It's a valid design choice. But it is to keep the programming simple. One might characterize that kind of choice as lazy. Especially in terms of user interface. But I'm not beating up on Lemmy. I'm just explaining to the original poster the trade-offs that people make.
Sir, you hardly know me! Disagree fine, but don't assume my pedigree.
FWIW temporal tables, and time travel are real things available now and they are built very similarly to ZFS versioning.
If we are truly trying to make a highly scalable distributed website, we wouldn't be querying a database directly, would be using something distributed. Like foundationDB, or memcached. And we would have to modify our approach somewhat, but these are still solvable problems. The architecture and the requirements are tightly coupled. But we can't make assumptions and rule out solutions at the whiteboard stage.
I think when a new post is posted and it hits the front page it bumps all the other posts back by that many, which will make them get bumped from the end of one page into the beginning of the next
Because new content got posted while you were browsing trough the page. If you refresh the page you're on it shows different entries on the top and the bottom ones are pushed to 2nd page.
The easiest solution might be to just look at what is returned and see if there are any duplicates with what you already have, and just filter those out. It’s not like you’re going to notice if the returned list is shorter if it loads more before you even get to the bottom.
If you get less than 1 screen of posts, ask for more.