System Design - tarunchhabra/parakalo GitHub Wiki

System Design

RoadMap - https://whimsical.com/system-design-roadmap-31C9vnRRATGW5Q95Krdciu https://www.youtube.com/watch?v=CC2euo2Ez3Y

Approach - https://www.youtube.com/watch?v=i7twT3x5yv8&t=469s

Basic concepts - https://www.youtube.com/watch?v=i53Gi_K3o7I https://www.youtube.com/watch?v=l3X1t3kpmwY https://www.youtube.com/watch?v=l3X1t3kpmwY

https://blog.tryexponent.com/what-is-system-design-in-technical-program-management/

How to know what Interviewer is asking and what to do in case you don't know solution for that problem

https://www.youtube.com/watch?v=ks5l5hmlYm4

Internet basics - Web Hosting, DNS, URL, User/Mobile request to Internet

DNS - https://aws.amazon.com/route53/what-is-dns/

Protocols - IP, TCP, UDP, HTTP/HTTPS 1,2,3, SSL/TLS, gRPC

https://www.youtube.com/watch?v=ldqG7Qvo3Lg

TCP vs UDP : https://www.baeldung.com/udp-in-java

DNS uses both TCP UDP - https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/dns-works-on-tcp-and-udp#:~:text=DNS%20uses%20TCP%20for%20Zone,information%20larger%20than%20512%20bytes.

https://www.ibm.com/docs/en/zos/2.2.0?topic=internets-tcpip-tcp-udp-ip-protocols

https://www.geeksforgeeks.org/differences-between-tcp-and-udp/

HTTPS : https://www.cloudflare.com/en-in/learning/ssl/what-is-https/

How does the INTERNET work?

https://www.youtube.com/watch?v=Kb6qPHAxURU

WebSockets, HTTP Long Polling, HTTP streaming, Server Sent Events

https://www.youtube.com/watch?v=k56H0DHqu5Y

https://www.youtube.com/watch?v=6RvlKYgRFYQ

Distributed Systems - Redis, Cassandra, MongoDB, Kafka

https://www.baeldung.com/cs/distributed-systems-guide

System design main concepts

https://www.freecodecamp.org/news/systems-design-for-interviews/

CAP theorem

https://blog.tryexponent.com/cap-theorem/

https://www.ibm.com/cloud/learn/cap-theorem

Web server and Application Server

https://www.nginx.com/resources/glossary/application-server-vs-web-server/

https://www.educative.io/edpresso/web-server-vs-application-server

https://www.quora.com/Do-we-need-a-web-server-and-an-application-server-for-an-e-commerce-website-or-only-an-application-server

https://www.ibm.com/cloud/learn/web-server-vs-application-server

Load-balancing

https://www.youtube.com/watch?v=1ALgz-q8FMA

https://avinetworks.com/what-is-load-balancing/#:~:text=Load%20balancers%20conduct%20continuous%20health,to%20cope%20with%20increased%20demand.

https://charlieinden.github.io/System-Design/2018-06-09_System-Design--Chapter-3--Load-Balancing-e1c89148e37.html

https://www.nginx.com/resources/glossary/load-balancing/

https://docs.nginx.com/nginx/deployment-guides/amazon-web-services/route-53-global-server-load-balancing/

https://www.nginx.com/blog/global-load-balancing-amazon-route-53-nginx-plus/

Active-Active and Active-Passive - https://www.youtube.com/watch?v=d-Bfi5qywFo

Reverse Proxy

https://www.youtube.com/watch?v=AuINJdBPf8I

https://www.youtube.com/watch?v=4NB0NDtOwIQ

Scalability

https://www.youtube.com/watch?v=EWS_CIxttVw

Consistent Hashing

https://www.youtube.com/watch?v=tHEyzVbl4bg

https://www.freecodecamp.org/news/systems-design-for-interviews/#section-7-consistent-hashing

https://learning.oreilly.com/videos/distributed-systems-in/9781491924914/9781491924914-video215269/

https://www.youtube.com/watch?v=zaRkONvyGr8&list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX&index=5

Consistent Hashing and solving the problem of load balancing with consistent hashing

API Gateway

https://www.youtube.com/watch?v=TYw-lzL3-Kc

https://www.youtube.com/watch?v=1vjOv_f9L8I

Databases

https://blog.tryexponent.com/sql-vs-nosql/

https://neo4j.com/blog/aggregate-stores-tour/

https://neo4j.com/blog/why-graph-data-relationships-matter

https://www.youtube.com/watch?v=cODCpXtPHbQ&list=PLhgw50vUymycJPN6ZbGTpVKAJ0cL4OEH3&index=2

https://www.youtube.com/watch?v=5EnEELn4IL4&list=PLf1ixTn00SJZF0ojUcYEacuxXm-W-Wvwr

https://igotanoffer.com/blogs/tech/databases-system-design-interview

Database Indexing - https://www.youtube.com/watch?v=Jemuod4wKWo

SQL DB - https://www.youtube.com/watch?v=Le74ewlajxg

No SQL DB - https://www.youtube.com/watch?v=mTNkqMDCasI

Database Scaling -

https://www.youtube.com/watch?v=dkhOZOmV7Fo

Database Replication

https://www.youtube.com/watch?v=5u7QGpsceuE

Read after write inconsistency

https://avikdas.com/2020/04/13/scalability-concepts-read-after-write-consistency.html

Sharding

GS - https://www.youtube.com/watch?v=5faMjKuB9bc

https://igotanoffer.com/blogs/tech/sharding-system-design-interview

https://blog.tryexponent.com/what-is-system-design-in-technical-program-management/

https://www.freecodecamp.org/news/systems-design-for-interviews/#section-8-databases

https://www.youtube.com/watch?v=5faMjKuB9bc&list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX&index=8

Sharding in Oracle - https://www.youtube.com/watch?v=9sXYEM5s15A

https://aws.amazon.com/blogs/database/sharding-with-amazon-relational-database-service/

Database scaling strategies

https://www.youtube.com/watch?v=_1IKwnbscQU

Database Performance

https://www.y## outube.com/watch?v=UT_TVldzA64

Write Ahead logging for Durability and Reliability in Databases

https://www.linkedin.com/pulse/database-reliability-write-ahead-logging-arpit-bhayani?trk=articles_directory

Caching

https://www.youtube.com/watch?v=dGAgxozNWFE

basic - https://hazelcast.com/glossary/memory-caching/

https://aws.amazon.com/caching/

IMDG - https://hazelcast.com/glossary/in-memory-data-grid/

https://hazelcast.com/blog/architectural-patterns-for-caching-microservices/

https://reflectoring.io/spring-boot-hazelcast/

Caching Patterns- https://hazelcast.com/blog/a-hitchhikers-guide-to-caching-patterns/

Caching Creation Patterns - https://hazelcast.com/blog/architectural-patterns-for-caching-microservices/

Cache Access eviction strategies - Read Hazelcast PDF - LRU, LFU

https://www.youtube.com/watch?v=U3RkDLtS7uY

https://www.youtube.com/watch?v=wh98s0XhMmQ

Cache writes: https://www.youtube.com/watch?v=ULgXBImWVWQ

Security - SAML, OpenId, OAuth2.0

https://aws.amazon.com/identity/saml/

Big Data Processing

https://aws.amazon.com/big-data/what-is-spark/

Video Processing and Adding Ad in Video

Messaging - Kafka, RabbitMQ, SNS, SQS, ActiveMQ

https://www.youtube.com/watch?v=4R5PF-UbJBs

RabbitMQ- https://www.youtube.com/watch?v=7rkeORD4jSw

Pub-Sub - https://www.youtube.com/watch?v=FMhbR_kQeHw

Change Data Capture

https://cloud.google.com/blog/products/databases/new-cloud-based-cdc-replication-across-databases

https://developers.redhat.com/blog/2020/04/14/capture-database-changes-with-debezium-apache-kafka-connectors#

https://www.striim.com/change-data-capture-cdc-what-it-is-and-how-it-works/

API

PUT vs PATCH

https://www.baeldung.com/http-put-patch-difference-spring

Observability

Observability vs. APM vs. Monitoring - https://www.youtube.com/watch?v=CAQ_a2-9UOI

APM - https://www.youtube.com/watch?v=QNaeegRFCzc

Prometheus Monitoring works - https://www.youtube.com/watch?v=h4Sl21AKiDg

Prometheus - https://www.infoq.com/articles/prometheus-monitor-applications-at-scale/

SRE

Google SRE - https://www.youtube.com/watch?v=uTEL8Ff1Zvk&list=PLIivdWyY5sqJrKl7D2u-gmis8h9K66qoj

Options for orchestrating periodic tasks

https://lethain.com/orchestrating-periodic-tasks/

Rate Limiting

https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/

https://www.baeldung.com/spring-bucket4j

https://www.baeldung.com/spring-retry

https://spring.io/blog/2021/04/05/api-rate-limiting-with-spring-cloud-gateway

https://reflectoring.io/retry-with-resilience4j/

https://reflectoring.io/rate-limiting-with-springboot-resilience4j/

Exponential Backoff

BackPressure https://www.baeldung.com/spring-webflux-backpressure

Operational Aspects

Reliability - https://www.atlassian.com/incident-management/kpis/reliability-vs-availability

DDD - Domain Driven Design

https://www.youtube.com/watch?v=ZZp9RQEGeqQ

  1. Ubiquitous language within a bounded context.
  2. Tactical patterns - Aggregates

FrontEnd

Micro frontEnds

SSR - server side rendering

https://www.frontendinterviewhandbook.com/front-end-system-design https://www.frontendinterviewhandbook.com/front-end-system-design/ui-components/

Observability & APM - https://aws.amazon.com/what-is/application-performance-monitoring/

https://stackify.com/application-performance-metrics/

Full stack observability - https://www.youtube.com/watch?v=Ga5AvnVDnkw

Latency metrics - https://www.youtube.com/watch?v=lJ4NEMNBeS4 https://www.youtube.com/watch?v=BrzhaXSEWy8&t=205s https://www.youtube.com/watch?v=3JdQOExKtUY