This content originally appeared on DEV Community and was authored by The Interview Sage
User Privacy has been a critical topic currently for most tech companies.
On Facebook, you may have noticed that you can set different privacy levels for the posts you publish so that they are only visible to a specific set of users like Public, Friends, Friends of friends, etc.
Key Features
The privacy implementation design can be fairly complex, so we will limit it to a few core features that can be covered in a 45-minute interview round. In this question, you will be asked to develop the backend of a system with the following key features:
- Enable a user to specify the different levels of privacy for a post so that it is only visible to a particular set of users on Facebook.
- To keep the discussion simple, implement two levels of privacy, Public and Friends.
- More complex levels like Friends of friends and Custom groups can be discussed towards the end of the interview if the time remains.
Detailed Interview Framework
You can use the following framework to better answer the Design Facebook Privacy Settings question in the interview. It will help you to maintain focus and answer it better.
- Key Features
- As discussed above
- Design Goals
- Minimum Latency
- High Consistency
- Partition Tolerance
- We will tolerate lower availability in the interest of high consistency (CAP Theorem)
- Read vs. Write Heavy
- Scale Estimation
- Daily Active Users (DAUs)
- Read QPS
- Write QPS
- Data generated each day and over 10 years (Storage Utilization)
- Approximate number of servers required
- REST APIs
- /setPrivacyLevel (Write API)
- /canView (Read API)
- High-Level Design
- Discuss different privacy levels & data structure to define them.
- Explain how the system will determine whether the post can be displayed to a specific user or not.
- How to build the key-value store to persist the friends data of the users.
- Database Design (Data Layer)
- Schema design
- SQL vs. No-SQL
- Sharding
- Hash-based sharding
- Consistent Hashing
- Replication (for Fault Tolerance)
- Quorum
- Read + Write Consistency
- Application Layer
- Multiple Stateless Servers with Load Balancer (Round-Robin)
- Caching for Fast Retrieval
- Eviction Policy - LRU
- Detailed Architecture Diagram
Optional
If time permits, you can also discuss the following towards the end of the interview:
- Complex Privacy Levels
- Friends of Friends
- Custom Groups
- Security, for example, ACL (Access Control List)
Preparation Material for this question
Learn more about the Key Features, Design Goals, Scale Estimations, REST APIs, High-Level Design, Detailed Architecture Diagram, and Framework to effectively prepare and answer this top question asked in the System Design Interviews at Facebook.
⬇️ Detailed Notes on Design Privacy Settings at Facebook
Cracking the Facebook System Design Interview
If you have not read our first article on Top Facebook System Design Interview Questions, we recommend reading it by clicking the below link:
Top Facebook System Design Interview Questions (Part 1) | Facebook Pirate Interview Round
The Interview Sage ・ Jan 4 ・ 4 min read
Cracking the Facebook Behavioral Interview
In case if you have not read our series on Cracking the Facebook Behavioral Interview, we recommend reading it by clicking the below link:
✅ Top Facebook Behavioral Interview Questions (Part 1) | Facebook Jedi Interview Round 🔥
The Interview Sage ・ May 15 ・ 9 min read
Useful Links
✅ Educative.io Unlimited Plan [💰 10% off for first 100 users]
✅ TryExponent.com Membership [💰 Limited Time 10% offer]
👩💻 Best System Design Interview Course
🚀 Complete SWE Interview Course [💰 Limited Time 10% offer]
🙋♀️ Behavioral Interview Guide [💰 Special Discount]
📚 Recommended Interview Preparation Book (on Amazon)
☕️ Buy us a Coffee at BuyMeACoffee.com/InterviewSage
To stay updated about new posts, Subscribe & Follow Us!
This article is part of the series on System Design Interviews at Facebook. So, follow us to get notified when our next article in this series is published. Thanks for reading!
This content originally appeared on DEV Community and was authored by The Interview Sage
The Interview Sage | Sciencx (2021-12-11T17:11:43+00:00) ✅ Design Privacy Settings At Facebook | System Design Interview (Pirate Round) 🔥. Retrieved from https://www.scien.cx/2021/12/11/%e2%9c%85-design-privacy-settings-at-facebook-system-design-interview-pirate-round-%f0%9f%94%a5/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.