Commit

5f5580d

Alright guys, realtime is live on /dev/null, things are looking pretty good so far. Previously we were doing a bunch of polling blindly. No more. The new flow is quite simple: - Something changes -> Reverb tells your browser -> browser fetches data -> UI updates This way we're fetching when there's actually something to fetch, instead of constantly hammering endpoints, hoping something happened. The flow is intentional, I wanted to keep the data reads where they are, so your permissions, blocks, mutes, preferences and whatnot gets applied on the server, exactly as before. Technically, we could send the updated content directly over Reverb, but that'd mean reimplementing all of these checks before delivery as well, which complicates things a ton. Also, we'd have to handle things like older events accidentally overwriting new state. Keeping the existing reads felt like the safest starting point for now. We have a couple smaller safety nets still in place, such as: - incoming calls are checked every 30s - inbox changes are checked every 60s These are in place, so we can catch missed updates, in case something happens with the socket. We also have backup-polling in case the socket dies completely, so your flow on /dev/null never breaks. New commits, replies, stars, pastéis, messages, livestream info, follow counts, notifications, and other updates now arrive as they happen, live, in real time - all that with a lot less pointless work in your browser and on the server. Overall I'm pretty happy with how this turned out, and as always, if you notice anything going south: send an issue, open a PR, or just start complaining here in the Log and we'll handle it from there. So... what do you think? Do you like it as much as I do?

commit 5f5580d