Latency Numbers Every Programmer Should Know

Copied from https://gist.github.com/jboner/2841832 Latency Comparison Numbers (~2012) ---------------------------------- L1 cache refere...

Wayne

System Design 101 - System Design Interviews step by step

System Design interview 通常是 open ended 問題,沒有唯一解,例如「設計一個 Twitter」、「設計一個縮網址服務」等等,所以必須要跟面試官互動,narrow down 問題,focus 在某些部分來解決即可。通常的步驟是: 總結來說...

Wayne

System Design 101 - Polling vs Long-Polling vs WebSockets vs Server-Sent Events

### Polling client 持續不斷的 send http request to server,server 持續不斷的回傳 response 給 client ex: 每秒都 call API 問 server 有沒有新的 notification ##...

Wayne

System Design 101 - Consistent Hashing

在 [System Design 101 - Sharding or Data Partitioning](/posts/426-system-design-101-sharding-or-data-partitioning) 的 Partitioning Criteri...

Wayne

System Design 101 - SQL and NoSQL

### SQL and NoSQL **SQL** => Relational databases store data in rows and columns. 就是有 tables, row, columns 的 database **NoSQL** => 泛指不是 ...

Wayne

System Design 101 - Caching

Cache 就是把常用的資料先 copy 起來,有人需要的時候就直接把 copy 拿給他、節省時間的方式 ## Cache 的種類 ### 1. Appplication server cache request 打到 web server 的時後從 web ser...

Wayne

System Design 101 - Sharding or Data Partitioning

> Data partitioning (also known as sharding) is a technique to break up a big database (DB) into many smaller parts. Sharding 就是把 DB 切成...

Wayne

System Design 101 - Introduction to CAP theorem

* 一致性(**C**onsistency) * 可用性(**A**vailability) * 分區容錯性(**P**artition tolerance) CAP 理論就是在說 CAP 只能滿足其中兩者,不可能三者都滿足。 > 在理論計算機科學中,CAP定理(CAP...

Wayne

Using RabbitMQ and Hutch with RPC call for queue in Rails

This is an example how the author implement the RPC call using Hutch and communicate with RabbitMQ https://karolgalanciak.com/blog/2020/...

Wayne