Git Product home page Git Product logo

system-design-notes's Introduction

System-Design-Notes

System design topics and concepts and thieir study links

Concepts:

  1. Consistent Hashing

    Cassandra Consistent Hasing with explanation of read and write opertions with replication

    Consistent Hashing explanation with advantages, high level article

    Consistent Hashing with code example

    Artile with most detailed notes on when nodes get added or removed

    Consistent Hasing: Algorithimin tradeoffs, code level exlpanation

  2. Distributed Transactions: DTs using Sagas in Micro-Services architecture: https://www.youtube.com/watch?v=YPbGW3Fnmbc

    Idea is that first part is executed consitently and second dependent part is executed eventually. for example, Support transfer of amount from acc A to acc B. then service handling transfer will debit the amount from A and then create a message in queue for
    crediting to B acc which will eventually get executed.

    Article on intro to both approaches: https://developers.redhat.com/blog/2018/10/01/patterns-for-distributed-transactions-within-a-microservices-architecture/

  3. Distributed Locks

  4. Cluster management

  5. Resiliency

  6. CAP theorem

StackOverFlow: Best article reference

Simplest explanation using examples

  1. Bloom Filters Are probabilistic data structure which can tell for sure that item do not belong to a set (No false negatives) and tell item belong to the given set with some certainity, if item is present in the set(false positives are present but can be minimized). It is extremelly useful as it saves a lot of memory. For introduction to subject follow following link: https://www.youtube.com/watch?v=bEmBh1HtYrw . The basic idea is to use k hash functions to generate a position to set a bit in an array of size n. where n is always > k. Then go for this video, this certainly makes things much clear after first video: https://www.youtube.com/watch?v=zYlxP7F3Z3c

  2. Rate Limiting (Leaky Bucket and Token Bucket algorithms), Load Shedders, Youtube Design Distributed Rate Limiter

  3. Data Replication

  4. Types of data and their mapping to different kinds of databases/stores

  5. Caching: Types, places where data can be cached and cache selection

  6. Map-Reduce

  7. DNS Servers

  8. CDNs

  9. Public Subscribe Queues

system-design-notes's People

Contributors

dvsakgec avatar

Forkers

tanish-18

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.