Search⌘ K
AI Features

Initial Design of Quora

Initial design

The initial design of Quora consists of the following components:

  • Web and application servers: Web servers accept incoming HTTP requests and forward them to application servers for processing. They run manager processes that delegate work to worker processes on application servers through a routing layer. This routing layer manages task queues, where managers enqueue tasks and workers dequeue them for execution. Application servers may also maintain in-memory priority queues to differentiate request classes. The following diagram shows an abstract view of this architecture:

Web and application servers at Quora
Web and application servers at Quora
  • Data stores: Quora uses specific storage solutions based on data requirements:

    • Relational database (MySQL): Stores critical data requiring high consistency, such as questions, answers, comments, and votes.

    • NoSQL (HBase): Stores high-throughput data like view counts, ranking scores, and extracted features for recommendations. HBase supports the high-bandwidth requirements of big data processing and avoids the expensive recomputation of features. ...