Slack Frontend Architecture with Anuj Nair

Slack is a messaging application with millions of users. The desktop application is an Electron app, which is effectively a web browser dedicated to running Slack. This frontend is built with ReactJS and other JavaScript code, and the application is incredibly smooth and reliable, despite its complexity.

When a user boots up Slack, the application needs to figure out what data to fetch and where to fetch it from. Companies that use Slack heavily have thousands of messages in their history, and Slack needs to determine which of those should be pulled into the client. There are profile images, and logos, and custom emojis, all of which are used to define the user’s custom workspace experience.

Anuj Nair joined Slack in late 2017. In the years since he has been with the company, Anuj helped rewrite the Slack frontend client, including work on the bootup experience, the caching infrastructure, and the role of service workers. Anuj joins the show to discuss his work on the Slack frontend architecture and the canonical view layer problems that Slack faces.

Sponsorship inquiries: sponsor@softwareengineeringdaily.com

Transcript

Transcript provided by We Edit Podcasts. Software Engineering Daily listeners can go to weeditpodcasts.com/sed to get 20% off the first two months of audio editing and transcription services. Thanks to We Edit Podcasts for partnering with SE Daily. Please click here to view this show’s transcript.


Sponsors

Logi’s embedded analytics platform makes it possible to create, update and brand your analytics so they seamlessly integrate within your application. Visit Logianalytics.com/sedaily to see what’s possible with Logi, today.

MongoDB is an intuitive, flexible document database that lets you get to building.  MongoDB’s document model is a natural way to represent data, so you can focus on what matters. You can get started free with MongoDB Atlas at mongodb.com/atlas.

DigitalOcean makes infrastructure simple. And for an application that needs to scale, DigitalOcean has CPU-Optimized Droplets, Memory-Optimized Droplets, Managed Databases, Managed Kubernetes, and much more. Visit do.co/sedaily and receive $100 in credit over 60 days.

VictorOps is a collaborative incident response tool. VictorOps brings your monitoring data and your collaboration tools into one place–so that you can fix issues more quickly, and reduce the pain of on-call. If you want to hear about how VictorOps works, you can listen to our episode with Chris Riley. Learn more about it as well as get a free t-shirt when you check it out at victorops.com/sedaily.

Software Weekly

Software Weekly

Subscribe to Software Weekly, a curated weekly newsletter featuring the best and newest from the software engineering community.