Web開発
Show HN: システム設計のアトラス、インタラクティブなアーキテクチャ図付き
Show HN: An atlas of system designs with interactive architecture diagrams (atlas-sysdes.vercel.app)
要約
この「システム設計のアトラス」は、システム設計の基本的なトレードオフをインタラクティブな図で分かりやすく解説しています。記事では、事前計算かオンデマンド計算か、単一コピーか複数コピーか、単一マシンか複数マシンか、正確性か可用性かといった、システム設計における重要な選択肢とその影響を視覚的に提示しています。これにより、開発者は複雑なシステム設計の意思決定をより深く理解できるようになります。
全文翻訳
事前計算かオンデマンド計算か
作業をデータ書き込み時に行い、読み取りを即座に可能にするが、古くなる可能性がある。読み取り時に行い、結果は常に最新だが、すべてのリクエストがコストを負担する。
事前計算
即時読み取り
古くなる可能性、ストレージ、書き込み増幅
オンデマンド計算
常に最新、書き込みが安価
読み取りが遅く、コストがかかる
より深く
ファンアウト
キャッシング
CQRS
単一コピーか複数コピーか
一貫性を犠牲にして、速度と可用性を得る
レプリカとキャッシュはデータを読み取り元に近づけ、障害から復旧するが、追加された各コピーは真実のソースから遅延する可能性がある。本当の問題は、製品がどの程度古い読み取りを許容できるかである。
単一コピー
常に一貫性がある
ボトルネック、単一障害点
複数コピー
高速、回復力のある読み取り
レプリケーションラグ、競合
より深く
レプリケーション
キャッシュレイヤー
クォーラム
単一マシンか複数マシンか
調整を犠牲にして、容量を得る
より大きなマシンはすべてをシンプルに保つが、天井に達する。マシン間でデータとトラフィックを分割すると天井はなくなるが、ルーティング、リバランス、ホットキー、シャードをまたぐクエリが追加される。
単一マシン
シンプル、トランザクション
ハードな容量天井
複数マシン
ほぼ無制限のスケール
調整、部分的な障害
より深く
スケーリング
シャーディング
サガ
正確か、利用可能か
パーティション中に何を犠牲にするか
ネットワークが分割された場合、ノードは保証できないリクエストを拒否するか、古い可能性のあるデータで応答する。支払いと座席在庫は正確性を重視し、フィードやいいね数は可用性を重視する。
正確
決して間違わない
分割中のエラーとタイムアウト
利用可能
常に回答する
古い読み取り、後で調整
より深く
CAPとPAXEL
LCP
支払い
フィード