# System Design

Topics

* News feed
* Job scheduler

## 4S Analysis

* Scenario Clarify: requirements, features, QPS, DAU, interface
* Service Break down into small services/model
* Storage Database, data schema
  * SQL database: user table
  * NoSQL database: Social Graph
  * File system: Media files, documents
*   Scale

    Sharding, optimization

## Design Load Balancer

Round Robin Weighted round robin Least connections Weighted least connections Random [http://www.jscape.com/blog/load-balancing-algorithms](http://www.jscape.com/blog/load-balancing-algorithms) [http://g33kinfo.com/info/archives/2657](http://g33kinfo.com/info/archives/2657)

## Top K Frequent Elements in Recent X mins

[https://www.jiuzhang.com/qa/219/](https://www.jiuzhang.com/qa/219/) [http://systemdesigns.blogspot.com/2015/12/top-k-requests-during-past-time-interval.html?view=classic](http://systemdesigns.blogspot.com/2015/12/top-k-requests-during-past-time-interval.html?view=classic)

## Design TinyURL

## Design Twitter

## Design Instagram

## Design Web Crawler

## Resources

### Blogs

* [Cherami: Uber Engineering’s Durable and Scalable Task Queue in Go](https://eng.uber.com/cherami-message-queue-system/)
* [https://redditblog.com/2017/05/24/view-counting-at-reddit/](https://redditblog.com/2017/05/24/view-counting-at-reddit/)

### Website

* [http://www.puncsky.com/blog/2016/02/14/crack-the-system-design-interview/](http://www.puncsky.com/blog/2016/02/14/crack-the-system-design-interview/)
*

### Video
