While it can be convenient to have the world at your fingertips, at some point the client cannot - and should not - know about, or need to render, absolutely everything right away. With most teams having less than 100 people, there were still a relatively small number of channels, message traffic was somewhat low, and client load time was quite fast.Īs the size of the average Slack team increased, hotspots impacting performance in various areas became more evident. Originally, Slack’s browser-based web app could effectively load the entire model up front without any notable performance issues. The WebSocket connection is the transport layer for receiving real-time messages - whether messages sent from other users on the team, or model update messages that the client needs to update state(e.g., a user joins/leaves a channel, updates their profile, uploads or shares a file, and so on.) Early Days: Loading The Whole World (Or Almost All Of It) Up Front On startup, the client makes some initial API calls and connects to a Message Server via WebSocket. The client starts with an empty model, which gets populated by a combination of local cache (as applicable) and API calls. * The Slack real-time messaging app works in web browsers, and our installable desktop app also uses a web-based view of the same hence, “Desktop” is an interchangeable term for both.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |