Reducing Slack’s memory footprint
Mar 3, 2017

Summary
Introduced a 'tiny client' for backgrounded teams to reduce memory footprint. This involved teaching servers to calculate notification counts, determine desktop notification eligibility, and track unread status. Developed a new API endpoint for 'has_unreads' and 'mention_count' stored in memcache, and a new 'desktop_notification' message type distributed over websockets. The tiny client is a single JavaScript file of ~1200 lines. The desktop application manages swapping between the full and tiny clients based on team usage.