Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

system-design

負荷分散、キャッシュ、データベーススケーリング、メッセージキューなど、構造化されたアプローチでスケーラブルな分散システムを設計します。「system design」「スケールしたい」「高可用性」「レートリミッター」「URLショートナーの設計」「キャパシティプランニング」「分散アーキテクチャ」といったキーワードが登場したとき、またはマイクロサービスとモノリスの選定や数百万の同時接続ユーザーへの対応を検討する際にトリガーされます。代表的なシステム設計パターンとフェルミ推定による概算見積もりをカバーしており、データ基礎は ddia-systems、レジリエンス設計は release-it を参照してください。

description の原文を見る

Design scalable distributed systems using structured approaches for load balancing, caching, database scaling, and message queues. Use when the user mentions "system design", "scale this", "high availability", "rate limiter", "design a URL shortener", "system design interview", "capacity planning", or "distributed architecture". Also trigger when estimating infrastructure requirements, choosing between microservices and monoliths, or designing for millions of concurrent users. Covers common system designs and back-of-the-envelope estimation. For data fundamentals, see ddia-systems. For resilience, see release-it.

SKILL.md 本文

システムデザインフレームワーク

大規模分散システムを設計するための体系的なアプローチです。新しいサービスを構築する際、システムデザインを見直す際、容量計画を立てる際、またはシステムデザインの議論に備える際に、これらの原則を適用してください。

コア原則

要件から始め、ソリューションから始めるな。 すべてのシステムデザインは、何を、誰のために、どのスケールで構築しているのかを明確にすることから始まります。制約条件を理解する前にアーキテクチャに飛び込むと、過度に複雑化されたまたは過度に単純化されたシステムになります。

基礎: スケーラブルなシステムは一から発明されるのではなく、よく理解されたビルディングブロック(ロードバランサー、キャッシュ、キュー、データベース、CDN)が明確なデータフローでつながった形で組み立てられます。スキルは正しいブロックを選択し、適切に規模を設定し、各選択がもたらすトレードオフを理解することにあります。4段階のプロセス(スコープ、高レベル設計、詳細分析、まとめ)により、設計は焦点が定まり、伝わりやすくなります。

スコアリング

目標: 10/10。 システムデザインをレビューまたは作成する際、以下の原則への適合性に基づいて0~10の評価をしてください。10/10は、要件を明確に述べ、バックオブザエンベロープ推定を含み、適切なビルディングブロックを使用し、スケーリングと信頼性に対応し、トレードオフを認識していることを意味します。低いスコアは対処すべきギャップを示しています。常に現在のスコアを提供し、10/10に到達するために必要な具体的な改善を示してください。

システムデザインフレームワーク

信頼性があり、スケーラブルな分散システムを構築するための6つの領域:

1. 4段階プロセス

コア概念: すべてのシステムデザインは4つの段階に従います: (1)問題を理解し設計の範囲を確立する、(2)高レベル設計を提案し合意を得る、(3)重要なコンポーネントを詳しく分析する、(4)トレードオフと今後の改善でまとめる。

なぜ機能するのか: 体系的なプロセスがなければ、設計は抽象的なままか、時期尚早な詳細に埋もれるかのいずれかになります。4段階アプローチにより、時間を比例的に投資できます——まず大まかに、重要な部分だけ詳しく。

主要インサイト:

  • ステップ1は約5~10分: 澄み切った質問を行い、機能要件と非機能要件をリストアップし、スケール(DAU、QPS、ストレージ)に合意する
  • ステップ2は約15~20分: API、サービス、データストア、データフロー矢印を含む高レベル図を描く
  • ステップ3は約15~20分: 最も難しいまたは最も重要な2~3個のコンポーネントを選び、詳しく設計する
  • ステップ4は約5分: トレードオフをまとめ、ボトルネックを特定し、今後の改善を提案する
  • ステップ1をスキップしない——スコープの曖昧さは設計努力の無駄につながる
  • 進める前に仮定について明示的な合意を得る

コード適用例:

コンテキストパターン
新しいサービスのキックオフコーディングの前に、4段階すべてを含む1ページの設計ドキュメントを作成する要件、APIコントラクト、データモデル、容量推定、その後実装
アーキテクチャレビューレビュアーを4段階を通じて順序立てて説明するスコープ、高レベル図、最もリスクの高いコンポーネントの詳細分析、未解決の質問
インシデント事後分析失敗を4段階レンズを通して遡るどの要件が見落とされたか? どのビルディングブロックが失敗したか? どのトレードオフが引っかかったか?

参照: references/four-step-process.md

2. バックオブザエンベロープ推定

コア概念: 2乗数、レイテンシ数値、単純な算術を使用して、アーキテクチャに確定する前にQPS、ストレージ、帯域幅、サーバー数を推定します。

なぜ機能するのか: 推定は2つの失敗モードを防ぎます: 過度にプロビジョニング(お金の無駄)と不十分なプロビジョニング(負荷下での停止)。2分の計算は数週間の手直しを救うことができます。

主要インサイト:

  • 2の累乗を知る: 2^10 = 1千、2^20 = 1百万、2^30 = 10億、2^40 = 1兆
  • メモリ読み取り ~100 ns、SSD読み取り ~100 us、ディークシーク ~10 ms、同じデータセンター往復 ~0.5 ms、大陸間 ~150 ms
  • 可用性の9: 99.9% = 年間8.77時間ダウンタイム、99.99% = 年間52.6分
  • QPS推定: DAU × 1日あたりの平均アクション数 / 86,400秒; ピークQPSは通常平均の2~5倍
  • ストレージ推定: 1日あたりのレコード数 × レコードサイズ × 保持期間
  • 常に積極的に丸める——目標は精密性ではなく、大きさの桁

コード適用例:

コンテキストパターン
容量計画QPSを推定し、成長係数を掛ける1億DAU × 5アクション / 86400 = 約5,800 QPS平均、約30K QPS ピーク
ストレージ予算レコードごとのサイズと量と保持期間を掛ける5億ツイート/日 × 300バイト × 365日 = 年間約55 TB
SLA定義可用性の9を許容ダウンタイムに変換する4つの9 (99.99%) = 年間約52分ダウンタイム

参照: references/estimation-numbers.md

3. ビルディングブロック

コア概念: スケーラブルなシステムは標準的なツールキットから組み立てられます: DNS、CDN、ロードバランサー、リバースプロキシ、アプリケーションサーバー、キャッシュ、メッセージキュー、一貫性ハッシング。

なぜ機能するのか: 各ブロックは特定のスケーリングまたは信頼性の問題を解決します。各ブロックをいつどのように導入するかを知ることで、時期尚早な複雑さと回避可能なボトルネックの両方を防ぎます。

主要インサイト:

  • DNSはドメイン名を解決します; CDNは静的資産をユーザーの近くのエッジロケーションでキャッシュします
  • ロードバランサーはトラフィックを分散させます——L4(トランスポート層、高速、シンプル) 対 L7(アプリケーション層、コンテンツ対応ルーティング)
  • キャッシング層: クライアント側、CDN、ウェブサーバー、アプリケーション(例: Redis/Memcached)、データベースクエリキャッシュ
  • キャッシュ戦略: キャッシュアサイド(アプリが管理)、リードスルー(キャッシュが読み取りを管理)、ライトスルー(キャッシュが同期的に書き込みを管理)、ライトビハインド(キャッシュが非同期に書き込みを管理)
  • メッセージキュー(Kafka、RabbitMQ、SQS)はプロデューサーとコンシューマーを分離し、トラフィックスパイクを吸収し、非同期処理を有効にします
  • 一貫性ハッシングは、ノードが追加または削除されるときに最小限の再分配でキーをノード全体に分散させます

コード適用例:

コンテキストパターン
読み取り集約的なワークロードデータベースの前にキャッシュアサイドとRedisを追加するTTL付きのユーザープロフィールをキャッシュし、書き込み時に無効化
トラフィックスパイクAPIとワーカー間にメッセージキューを挿入する画像リサイズジョブをエンキューし、ワーカーは自分のペースでプル
グローバルユーザー静的資産の前にCDNを配置するエッジからJS/CSS/イメージを提供; オリジンはAPIのみ提供
不均等な負荷一貫性ハッシングをシャード割り当てに使用するノードを追加し、約1/nのキーだけ移動する必要がある

参照: references/building-blocks.md

4. データベース設計とスケーリング

コア概念: データベース形状とアクセスパターンに基づいてSQLとNoSQLを選択し、まず垂直スケーリング、水平スケーリング(レプリケーションとシャーディング)が必要になったら適用します。

なぜ機能するのか: データベースは通常、最初のボトルネックです。レプリケーション、シャーディング戦略、非正規化トレードオフを理解すれば、高価な再アーキテクチャを遅延させ、成長を意図的に計画できます。

主要インサイト:

  • 垂直スケーリング(より大きいマシン)はシンプルですが上限があります; 水平スケーリング(より多くのマシン)はより難しいですがほぼ無制限です
  • レプリケーション: リーダー・フォロワー(1つのライター、多くのリーダー)は読み取り集約的; マルチリーダーは複数リージョンの書き込み
  • シャーディング戦略: ハッシュベース(均等分布、難しい範囲クエリ)、範囲ベース(効率的な範囲クエリ、ホットスポットのリスク)、ディレクトリベース(柔軟、追加ルックアップ)
  • SQLは ACID トランザクション、複雑なジョイン、定義されたスキーマが必要な場合; NoSQL は柔軟なスキーマ、水平スケール、または非常に高い書き込みスループットが必要な場合
  • 非正規化は、ストレージと書き込み複雑さをより高速な読み取りと引き換えにします——読み取りパフォーマンスが重要でデータが頻繁に変わらない場合に使用します
  • 有名人/ホットスポット問題: 1つのシャードが不釣り合いなトラフィックを受け取る場合、セカンダリパーティショニングまたはキャッシング層を追加します

コード適用例:

コンテキストパターン
読み取り集約的なAPIリーダー・フォロワーレプリケーション(読み取りレプリカ)読み取りをレプリカにルーティング、書き込みをリーダーにルーティング; レプリケーションラグを許容
スケール時のユーザーデータuser_idに基づくハッシュシャーディングシャードキー = hash(user_id) % num_shards; 均等分布、各シャード独立
分析ダッシュボード読み取り最適化された物理化ビューに非正規化毎晩事前ジョイン・集約; 物理化テーブルからダッシュボード提供
複数リージョンアプリ競合解決を伴うマルチリーダーレプリケーション各リージョンにリーダー; ラストライトウインズまたはアプリケーションレベルのマージ

参照: references/database-scaling.md

5. 一般的なシステムデザイン

コア概念: ほとんどのシステムは、よく知られた少数の設計の変形です: URL短縮機、レート制限機、通知システム、ニュースフィード、チャットシステム、検索オートコンプリート、ウェブクローラー、一意ID生成器。

なぜ機能するのか: 一般的なデザインを研究することで、パターンとトレードオフの精神的ライブラリを構築できます。新しい問題が到来したとき、どの既知のデザインが最も類似しているかを認識し、一から発明するのではなく適応させることができます。

主要インサイト:

  • URL短縮機: base62エンコーディング、キー・バリューストア、301対302リダイレクトトレードオフ、リダイレクトログイングによる分析
  • レート制限機: トークンバケットまたはスライディングウィンドウアルゴリズム、APIゲートウェイまたはミドルウェアに配置、429をRetry-Afterヘッダーで返す
  • ニュースフィード: ファンアウト・オン・ライト(投稿時にフォロワーキャッシュにプッシュ)対ファンアウト・オン・リード(読み取り時にプルしてマージ); 有名人アカウント向けハイブリッド
  • チャットシステム: リアルタイム双方向通信用WebSocket、配信保証用メッセージキュー、ハートビート経由のプレゼンスサービス
  • 検索オートコンプリート: トライデータ構造、トップkの頻繁なクエリ、人気プレフィックスの結果を事前計算・キャッシュ
  • ウェブクローラー: URL境界でBFS、礼儀(robots.txt、ドメインごとのレート制限)、コンテンツハッシュを使った重複排除
  • 一意ID生成器: UUID(シンプル、協調不要)対Snowflake(タイム・ソート可能、64ビット、データセンター対応)

コード適用例:

コンテキストパターン
短いリンクサービスオートインクリメントIDまたはハッシュをbase62エンコードhttps://short.ly/a1B2c3 はキー・バリューストアの行にマップ
API保護ゲートウェイのトークンバケットレート制限機API キーごと100トークン/分; 定期的にリフィル; 429で拒否
ソーシャルフィードハイブリッドファンアウト: 通常ユーザーはプッシュ、有名人はプル1万人未満のフォロワー数のアカウント向けフィードを事前計算; 有名人投稿は読み取り時にマージ
分散IDSnowflake: タイムスタンプ + データセンター + マシン + シーケンス64ビット、タイム・ソート可能、ジェネレータ間の協調不要

参照: references/common-designs.md

6. 信頼性と運用

コア概念: システムは、稼働し続け、失敗から回復し、観察される能力と同じくらい良いです。ヘルスチェック、モニタリング、ロギング、デプロイメント戦略は事後的な考慮ではなく、第一級の設計上の関心事です。

なぜ機能するのか: 本番システムは、設計図が決して予測しない方法で失敗します。運用上の準備——メトリクス、アラート、ロールバック計画、冗長性——は、失敗が軽微な問題になるか大きな障害になるかを決定します。

主要インサイト:

  • ヘルスチェック: ライブネス(プロセスは生きているか?)と読み込み準備状態(トラフィックを提供できるか?) ——Kubernetes は両方を使用
  • モニタリングスタック: メトリクス(Prometheus、Datadog)、ログ(ELK、CloudWatch)、トレーシング(Jaeger、Zipkin)——観測可能性の3本柱
  • デプロイメント戦略: ローリング(段階的交換)、ブルーグリーン(2つの同一環境、即座の切り替え)、カナリア(最初に小さいパーセンテージ、その後拡張)
  • ディザスターリカバリー: RPO(どれくらい多くのデータを失うことができるか)とRTO(回復までのどのくらい長いか)がバックアップとフェイルオーバー戦略を定義
  • 複数データセンター: アクティブ・パッシブ(フェイルオーバー)またはアクティブ・アクティブ(両方が提供); アクティブ・アクティブはデータ同期と競合解決が必要
  • オートスケーリング: CPU、メモリ、キューの深さ、またはカスタムメトリクスでスケール; 常に最小と最大インスタンス数の両方を設定

コード適用例:

コンテキストパターン
ダウンタイムなしデプロイヘルスチェックゲート付きブルーグリーンヘルスチェックが通った後、グリーンにトラフィックをルーティング; ブルーは即座のロールバックとして保持
段階的ロールアウトメトリクス比較付きカナリアデプロイ新バージョンに5%のトラフィック送信; エラー率とレイテンシを比較; 昇進またはロールバック
失敗検出ライブネスと読み込み準備プローブ/healthz は生きていれば200を返す; /ready はデータベースが接続され、キャッシュがウォーム状態であれば200を返す
データ安全性RPO/RTO を定義し、それに応じて実装RPO = 1時間は1時間ごとのバックアップを意味する; RTO = 5分は自動フェイルオーバーを意味する

参照: references/reliability-operations.md

一般的な間違い

間違い失敗する理由修正
要件を明確にせずにアーキテクチャに飛び込む間違った問題を解決するか、重要な制約を見落とす最初の5~10分をスコープに費やす: 機能、スケール、SLA
バックオブザエンベロープ推定がない1桁以上多い/少ないでプロビジョニングQPS、ストレージ、帯域幅を推定してからコンポーネントを選択
単一障害点1つのコンポーネントが失敗するとシステム全体が機能しなくなるすべての層で冗長性を追加: マルチサーバー、マルチAZ、マルチリージョン
時期尚早なシャーディング必要になる前に巨大な運用複雑さを追加垂直スケール、読み取りレプリカを追加、積極的にキャッシュ、最後にシャード
無効化戦略なしのキャッシング古いデータはバグと混乱を引き起こすTTL を定義し、キャッシュアサイド with 書き込み時の明示的無効化
どこでも同期呼び出し1つの遅いダウンストリームサービスがすべての呼び出し元のレイテンシをカスケード非レイテンシクリティカルパスにメッセージキューを使用; 同期呼び出しにタイムアウトを設定
有名人/ホットスポット問題を無視1つのシャードまたはキャッシュキーがハンマーされ、その他はアイドルホットキーを検出、セカンダリパーティショニングを追加、またはローカルキャッシュを使用
モニタリングまたはアラート機能なしユーザーからではなくダッシュボードから障害を知るメトリクス、ログ、トレースを最初から実装

クイック診断

質問いいえの場合アクション
機能要件と非機能要件は明示的にリストアップされていますか?設計は仮定に基づいている機能、DAU、QPS、ストレージ、レイテンシ SLA、可用性 SLA を書き出す
QPS とストレージのバックオブザエンベロープ推定がありますか?容量は推測計算: DAU × アクション / 86400 for QPS; レコード × サイズ × 保持期間 for ストレージ
図内のすべてのコンポーネントは冗長ですか?単一障害点が存在各コンポーネントにレプリカ、フェイルオーバー、またはマルチAZを追加
データベーススケーリング戦略は定義されていますか?成長下で壁に当たる計画: 垂直スケール、その後読み取りレプリカ、その後クリアなシャードキーでシャーディング
読み取り集約的なパスのキャッシング層があります?データベースは不要な負荷を取るRedis/Memcached をキャッシュアサイドで追加し、定義済みのTTL
非同期パスはメッセージキューを使用していますか?密結合、カスケード失敗バックグラウンドジョブ、通知、分析用 Kafka/SQS で分離
モニタリングとアラート計画があります?本番環境での失敗に盲目メトリクス、ログ集約、トレーシング、アラート閾値を定義
デプロイメント戦略は定義されていますか?リスク高いオールアットワンスリリースローリング、ブルーグリーン、または自動ロールバック付きカナリアを選択

参照ファイル

  • four-step-process.md: 各段階の時間配分、質問例、ヒントを含む完全な4段階プロセス
  • estimation-numbers.md: 2の累乗、レイテンシ数値、可用性9、解き方例付きQPS/ストレージ/帯域幅推定
  • building-blocks.md: DNS、CDN、ロードバランサー、キャッシング戦略、メッセージキュー、一貫性ハッシング
  • database-scaling.md: SQL対NoSQL、レプリケーション、シャーディング戦略、非正規化、データベース選択ガイド
  • common-designs.md: URL短縮機、レート制限機、ニュースフィード、チャットシステム、検索オートコンプリート、ウェブクローラー、一意ID生成器
  • reliability-operations.md: ヘルスチェック、モニタリング、ログ、デプロイメント戦略、ディザスターリカバリー、オートスケーリング

さらなる学習

このスキルは Alex Xu の実践的なシステムデザイン方法論に基づいています。詳細な図とウォークスルーを含む完全なガイドについては:

著者について

Alex Xu はソフトウェアエンジニアであり、システムデザインを学ぶための最も人気のあるプラットフォームの1つである ByteByteGo の創作者です。彼の2巻の System Design Interview シリーズは、あらゆるレベルのエンジニアのための事実上の準備リソースになり、50万部以上が売られています。Xuのアプローチは、構造的思考、バックオブザエンベロープ推定、設計決定のクリアな伝達を強調しています。ByteByteGo 以前は、Twitter、Apple、Oracleで働いていました。彼のビジュアル説明と段階的なフレームワークは、システムデザインを従来の不透明なトピックから学習可能で繰り返し可能なスキルに変えて、幅広いエンジニアリング聴衆にアクセス可能にしました。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
wondelai
リポジトリ
wondelai/skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/wondelai/skills / ライセンス: MIT

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: wondelai · wondelai/skills · ライセンス: MIT