Skip to content

Instantly share code, notes, and snippets.

@andrew8088
Last active May 4, 2021 19:54
Show Gist options
  • Select an option

  • Save andrew8088/9b9d0e5610b0d0c1cde215f1bcd0815b to your computer and use it in GitHub Desktop.

Select an option

Save andrew8088/9b9d0e5610b0d0c1cde215f1bcd0815b to your computer and use it in GitHub Desktop.

Revisions

  1. andrew8088 revised this gist May 4, 2021. 1 changed file with 11 additions and 6 deletions.
    17 changes: 11 additions & 6 deletions systems-design-assignment.md
    Original file line number Diff line number Diff line change
    @@ -6,19 +6,24 @@ Create a searchable system for storing the library’s catalogue, that library m

    # Requirements

    * Store the library’s catalogue of books (must have)
    ## Must Have
    * **Store the library’s catalogue of books**
    * The catalogue contains 10 million unique books, with one or more copies of each one available
    * Each year, ~700,000 unique books are added to the library’s catalogue, and ~300,000 are removed
    * Search books by title, author, and ISBN number (must have)
    * **Search books by title, author, and ISBN number**
    * The library’s catalogue contains books in >300 languages
    * The library’s catalogue is internationally available, and is searched ~275,000 times per day
    * Checkout books that are available (must have)
    * **Checkout books that are available**
    * Members are limited to having 10 books checked out at a time
    * Members should receive a notification of their checkout
    * Be notified when your book is overdue (should have)

    ## Should Have
    * **Be notified when your book is overdue**
    * Books can only be checked out for 14 continuous days from the date of checkout
    * Browse books by author and category (should have)
    * **Browse books by author and category**
    * Categories are created by the library’s staff, and books assigned to them
    * Favourite books that are of interest to you (could have)

    ## Could Have
    * **Favourite books that are of interest to you**
    * Members should receive a weekly summary of their top 5 favourite books, ranked by most frequently checked out

  2. andrew8088 created this gist May 4, 2021.
    24 changes: 24 additions & 0 deletions systems-design-assignment.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    # Summary

    The university has decided to invest in a revamp of their library’s digital service, moving it from a legacy system that’s hosted on premise, to a modern, cloud-native system that’s built atop a Platform as a Service like AWS.

    Create a searchable system for storing the library’s catalogue, that library members can use to find and check out books.

    # Requirements

    * Store the library’s catalogue of books (must have)
    * The catalogue contains 10 million unique books, with one or more copies of each one available
    * Each year, ~700,000 unique books are added to the library’s catalogue, and ~300,000 are removed
    * Search books by title, author, and ISBN number (must have)
    * The library’s catalogue contains books in >300 languages
    * The library’s catalogue is internationally available, and is searched ~275,000 times per day
    * Checkout books that are available (must have)
    * Members are limited to having 10 books checked out at a time
    * Members should receive a notification of their checkout
    * Be notified when your book is overdue (should have)
    * Books can only be checked out for 14 continuous days from the date of checkout
    * Browse books by author and category (should have)
    * Categories are created by the library’s staff, and books assigned to them
    * Favourite books that are of interest to you (could have)
    * Members should receive a weekly summary of their top 5 favourite books, ranked by most frequently checked out