System design topics and concepts and thieir study links
Concepts:
-
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
-
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/
-
Distributed Locks
-
Cluster management
-
Resiliency
-
CAP theorem
StackOverFlow: Best article reference
Simplest explanation using examples
-
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
-
Rate Limiting (Leaky Bucket and Token Bucket algorithms), Load Shedders, Youtube Design Distributed Rate Limiter
-
Data Replication
-
Types of data and their mapping to different kinds of databases/stores
-
Caching: Types, places where data can be cached and cache selection
-
Map-Reduce
-
DNS Servers
-
CDNs
-
Public Subscribe Queues