🐝
Mess around software system design
  • README
  • ArchitectureTradeOffAnalysis
    • Estimation
    • Middleware
    • Network
    • Server
    • Storage
  • Conversion cheat sheet
  • Scenarios
    • TinyURL
      • Estimation
      • Flowchart
      • Shortening mechanisms
      • Rest API
      • Performance
      • Storage
      • Follow-up
    • TaskScheduler
      • JDK delay queue
      • Timer based
      • RabbitMQ based
      • Kafka-based fixed delay time
      • Redis-based customized delay time
      • MySQL-based customized delay time
      • Timer TimingWheel
      • Industrial Scheduler
      • Workflow Engine
      • Airflow Arch
    • GoogleDrive
      • Estimation
      • Flowchart
      • Storage
      • Follow-up
    • Youtube
      • Estimation
      • Flowchart
      • Performance
      • Storage
      • Follow-up
      • Netflix
    • Uber
      • Estimation
      • Rest api
      • Flowchart
      • KNN algorithms
      • Geohash-based KNN mechanism
      • Redis implementation
      • Storage
    • Twitter
      • Estimation
      • Flowchart
      • Storage
      • Scalability
      • Follow-up
    • Instant messenger
      • Architecture overview
      • Presence
      • Unread count
      • Notifications
      • Read receipt
      • Large group chat
      • Storage-Offline 1:1 Chat
      • Storage-Offline group chat
      • Storage-Message roaming
      • NonFunc-Realtime
      • NonFunc-Reliability
      • NonFunc-Ordering
      • NonFunc-Security
      • Livecast-LinkedIn
    • Distributed Lock
      • Single machine
      • AP model based
      • CP model based
      • Chubby-TODO
    • Payment system
      • Resilience
      • Consistency
      • Flash sale
    • Key value store
      • Master-slave KV
      • Peer-to-peer KV
      • Distributed cache
  • Time series scenarios
    • Observability
      • TimeSeries data
      • Distributed traces
      • Logs
      • Metrics
      • NonFunc requirments
  • Search engine
    • Typeahead
    • Search engine
    • Distributed crawler
      • Estimation
      • Flowchart
      • Efficiency
      • Robustness
      • Performance
      • Storage
      • Standalone implementation
      • Python Scrapy framework
    • Stream search
  • Big data
    • GFS/HDFS
      • Data flow
      • High availability
      • Consistency
    • Map reduce
    • Big table/Hbase
    • Haystack
    • TopK
    • Stateful stream
    • Lambda architecture
    • storm架构
    • Beam架构
    • Comparing stream frameworks
    • Instagram-[TODO]
  • MicroSvcs
    • Service Registry
      • Flowchart
      • Data model
      • High availability
      • Comparison
      • Implementation
    • Service governance
      • Load balancing
      • Circuit breaker
      • Bulkhead
      • Downgrade
      • Timeout
      • API gateway
      • RateLimiter
        • Config
        • Algorithm comparison
        • Sliding window
        • Industrial impl
    • MicroSvcs_ConfigCenter-[TODO]
    • MicroSvcs_Security
      • Authentication
      • Authorization
      • Privacy
  • Cache
    • Typical topics
      • Expiration algorithm
      • Access patterns
      • Cache penetration
      • Big key
      • Hot key
      • Distributed lock
      • Data consistency
      • High availability
    • Cache_Redis
      • Data structure
      • ACID
      • Performance
      • Availability
      • Cluster
      • Applications
    • Cache_Memcached
  • Message queue
    • Overview
    • Kafka
      • Ordering
      • At least once
      • Message backlog
      • Consumer idempotency
      • High performance
      • Internal leader election
    • MySQL-based msg queue
    • Other msg queues
      • ActiveMQ-TODO
      • RabbitMQ-TODO
      • RocketMQ-TODO
      • Comparison between MQ
  • Traditional DB
    • Index data structure
    • Index categories
    • Lock
    • MVCC
    • Redo & Undo logs
    • Binlog
    • Schema design
    • DB optimization
    • Distributed transactions
    • High availability
    • Scalability
    • DB migration
    • Partition
    • Sharding
      • Sharding strategies
      • Sharding ID generator overview
        • Auto-increment key
        • UUID
        • Snowflake
        • Implement example
      • Cross-shard pagination queries
      • Non-shard key queries
      • Capacity planning
  • Non-Traditional DB
    • NoSQL overview
    • Rum guess
    • Data structure
    • MySQL based key value
    • KeyValueStore
    • ObjectStore
    • ElasticSearch
    • TableStore-[TODO]
    • Time series DB
    • DistributedAcidDatabase-[TODO]
  • Java basics
    • IO
    • Exception handling
  • Java concurrency
    • Overview
      • Synchronized
      • Reentrant lock
      • Concurrent collections
      • CAS
      • Others
    • Codes
      • ThreadLocal
      • ThreadPool
      • ThreadLifeCycle
      • SingletonPattern
      • Future
      • BlockingQueue
      • Counter
      • ConcurrentHashmap
      • DelayedQueue
  • Java JVM
    • Overview
    • Dynamic proxy
    • Class loading
    • Garbage collection
    • Visibility
  • Server
    • Nginx-[TODO]
  • Distributed system theories
    • Elementary school with CAP
    • Consistency
      • Eventual with Gossip
      • Strong with Raft
      • Tunable with Quorum
      • Fault tolerant with BFT-TODO
      • AutoMerge with CRDT
    • Time in distributed system
      • Logical time
      • Physical time
    • DDIA_Studying-[TODO]
  • Protocols
    • ApiDesign
      • REST
      • RPC
    • Websockets
    • Serialization
      • Thrift
      • Avro
    • HTTP
    • HTTPS
    • Netty-TODO
  • Statistical data structure
    • BloomFilter
    • HyperLoglog
    • CountMinSketch
  • DevOps
    • Container_Docker
    • Container_Kubernetes-[TODO]
  • Network components
    • CDN
    • DNS
    • Load balancer
    • Reverse proxy
    • 云中网络-TODO
  • Templates
    • interviewRecord
  • TODO
    • RecommendationSystem-[TODO]
    • SessionServer-[TODO]
    • Disk
    • Unix philosophy and Kafka
    • Bitcoin
    • Design pattern
      • StateMachine
      • Factory
    • Akka
    • GoogleDoc
      • CRDT
Powered by GitBook
On this page
  • System design Interview
  • Philosophy
  • Intentions
  • References
  • Roadmap
  • Contributions

Was this helpful?

README

NextArchitectureTradeOffAnalysis

Last updated 3 years ago

Was this helpful?

System design Interview

Philosophy

"The best things in life are free. The second best things are very, very expensive."

"While the quote above rings true, I’d add that the difference between the best things and the second best things is far, far greater than the difference between the second best things and the twentieth best things. It’s not a linear scale."

I remembered that when I was young, my father would take me for these long walks on these Greek mountains. He was always trying to teach us Simplicity and appreciation to nature. The best things in life, are available to everyone because they are inside us, like truth, imagination, creativity, love, kindness, compassion! Greatness has nothing to do with money, success or possessions.

Intentions

Question driven evolvement

  • In real life, software systems are not completely designed, but also evolving with reallife problems.

  • The content will try to be structured in a question driven way instead of random solutions haphazardly assembled together.

Graph intensive tutorial

Translate great Chinese articles to English

  • There are many professionals translating great English articles (such as InfoQ) to China. However, there isn't a lot of effort in translating great Chinese articles to English.

References

Beginner tutorials

  • There are so many great system design tutorials for beginners in the market:

In depth discussions

  • Learning them does help in interviews because most interviews are super busy people. They typically don't have much time thinking about new interview questions. I really want to take the time to mess around and enjoy it because life is short.

  • In-depth discussions is the most effective way for me to understand and remember things. This following blogs really demonstrate what type of in-depth discussions I want to have:

    • Martin Kleppmann

Graph intensive tutorials

Relevant but a bit broader

  • Blogs:

  • Books:

  • Videos courses:

In Chinese only

Roadmap

  • There are two types of TODOs in the repo

    • The first is a topic on the left hand rail directly marked as TODO. It is a topic that I am interested in but haven't got time to learn systematically about it.

    • The second is a TODO listed inside the bottom of a discussion topic. It typically links to a blog / resource that I want to read further but haven't got time to.

Contributions

Coco Chanel

DHH on

Yanni on

I am a visual learner and graph is always easier for me to understand things with graph. I especially like tech books published by because it is so good at illustrating with pictures.

Earlier I was using for pictures. Recently I started using and because it was easier to use and maintain.

Please see this for details.

Book:

Course:

You could see the roadmap of this system design repo at this

Contribution welcomed at

System design Interview
Philosophy
Intentions
Question driven evolvement
Graph intensive tutorial
Translate great Chinese articles to English
References
Beginner tutorials
In depth discussions
Graph intensive tutorials
Relevant but a bit broader
In Chinese only
Roadmap
Contributions
The best things in life are free
Basecamp journey on Observer
Yanni – “Tribute ”… The “Tribute” Concerts!
Manning
Monodraw
Excalidraw
Whimscal
对中美信息流动不对称的几点思考
donnemartin/system-design-primer
checkcheckzz/system-design-interview
puncsky/system-design-and-architecture
eileen-code4fun/SystemDesignInterviews
System Design Interview
Grokking the system design interview
Google doc by FAANG engineers
Netflix blog
Pinterest blog
Talks by DDIA author
Confluent blogs
Personal website
Long discussions on random topics: https://kousiknath.medium.com/
Takahiko Kawasaki, Co-founder and representative director of Authlete, Inc.,
AWS architecture doc
Company engineering blogs
Cool wizard zines explaining basic concepts
DDIA
Cloud Academy
InfoQ
极客时间
网易云架构师课程
东哥IT笔记
美团技术团队
即时通讯网
精选技术文章摘抄
铭道模拟面试笔记
Github Project Page
https://github.com/DreamOfTheRedChamber/system-design-interviews