Slack

Re-architecting Slack’s Workspace Preferences: How to Move to an EAV Model to Support Scalability

Aug 9, 2018
Re-architecting Slack’s Workspace Preferences: How to Move to an EAV Model to Support Scalability
SummaryAI, from the source post

Re-architected workspace preferences from a JSON blob in the workspaces table to an Entity/Attribute/Value (EAV) model using Vitess. Created a new data model with workspace ID, pref name, and JSON pref value. Implemented data migration using double-writes and backfill scripts. Transitioned to reading from the new table via dark mode and light mode reads. Generated getter functions for individual preferences to enforce type-safety and improve efficiency. Switched caching strategy to cache individual preferences.

More from the Slack Connect Configuration Management trail