its not quite so simple as that.
before we updated 10 channels every 30 seconds’ish and it just round-robined choosing the 10 “least recently updated” with no extra criteria + an extra channel (or many on notifications which is actually a composit of many channels, one per alt + a universal announcements + a username level notifications channel) when not on #all to be faster, now it updates 1 channel every every 2.5s’ish, but which channel it picks to update is based on a lot of criteria:
- how active is the channel? when was the last received/sent message? [ more active -> expect there to be new messages again soon so update more frequently ]
- are you scrolled up in the channel looking back at older messages? [ looking back at history -> care less about new messages arriving right now ]
- are you filtering on a specific channel? [ update more frequently ]
- how long since this channel was updated? [ if channel has just been updated, give it a break for a bit… and helps channels that get prioritised down to eventually update still ]
- how many unread messages are there in the channel? [ if you arent bothering to read the channel, then update less ]
- what type of channel is it? PM/Guild channels expected to be “more important” and updated more frequently than Universal channels, updated more frequently than Notification channels for your alts, updated more frequently than Guild-Log channels, updated more frequently than “universal” notification channels [ we very very rarely send a message out on these as devs ]
The result aims to not be any more “expensive” on the backend, but being much more responsive in general use-cases, eg you send a pm to someone: activity is higher, so is updated more frequently expecting you to get a response. If a pm is sent to you, once it is received itll be updated more frequently for a while expecting more messages to come soon. If you are actively PM’ing someone, even on the #all channel, it should be much more real-time than before where it would ALWAYS be slow as it was wasting time updating channels you hadnt interacted with in a really long time for no good reason [ and the bugs in the system meant that whenever it wasnt updating a specific channel, itd end up missing new messages in that period too making it much more useless… ]