Overview
The article discusses the development of a centralized and scalable settings platform at LinkedIn aimed at enhancing member trust through improved data privacy and user control. It outlines the challenges of the legacy settings system and presents a new backend architecture designed to support complex use cases and streamline the developer experience.
What You'll Learn
1
How to design a centralized settings platform for user preferences
2
Why hierarchical settings are important for user control
3
How to reduce the time required to create new settings in a system
Key Questions Answered
What are the main problems with LinkedIn's legacy settings service?
The legacy settings service lacks support for complex settings, is decentralized across multiple databases, and requires significant time for developers to create new settings. These issues hinder the ability to manage user preferences effectively and efficiently.
How does the new settings platform improve the developer experience?
The new settings platform centralizes the storage of settings, supports complex use cases, and allows for dynamic creation and modification of settings without manual code changes, significantly reducing the time required to implement new settings.
What is the purpose of the setting metadata service?
The setting metadata service defines each setting type, including validation data and documentation. It allows for versioning and maintains a history of changes, ensuring that developers can track modifications and approvals efficiently.
Key Statistics & Figures
Time to create a new setting
5 weeks of elapsed time and 2 weeks of real developer time
This statistic highlights the inefficiency of the legacy system, which the new platform aims to improve.
Queries supported by the new setting values service
over 600,000 queries per second
This performance metric indicates the scalability of the new system to handle high traffic efficiently.
Technologies & Tools
Database
Espresso
Used as LinkedIn's distributed NoSQL database for storing setting values.
Database
Oracle
Used for storing setting metadata, allowing for complex queries across setting types.
Backend
Rest.li
APIs provided by the new mid-tier service for interacting with settings.
Key Actionable Insights
1Implement a centralized settings platform to streamline user preference management.Centralizing settings can reduce the complexity of managing user preferences across different services, making it easier to enforce privacy and compliance.
2Utilize hierarchical settings to enhance user control over notifications and communications.By allowing users to manage settings at both global and individual levels, you can improve user satisfaction and trust in the platform.
3Adopt a developer tool for managing setting metadata to speed up the development process.This tool can facilitate quicker iterations and reduce the overhead associated with deploying new settings, leading to faster feature rollouts.
Common Pitfalls
1
Failing to centralize settings storage can lead to fragmented user experiences.
When settings are spread across multiple services, it complicates the management of user preferences and can result in inconsistent behavior across the platform.