Integrated Capstone
多地域の医療予約サービスを設計・運用する
これは実施課題です。ページの閲覧や成果物の存在だけでは、完了・習得済みを主張できません。
Scenario
三地域の利用者と医療機関を結ぶ予約サービスを設計する。低帯域・支援技術利用者を含み、同一枠の二重予約を防ぎながら、地域間分断、重複要求、依存遅延、段階配信、incidentを扱う。機能実装だけでは完了せず、制約から設計・実装・運用・説明・第三者reviewまでを同じ証拠で追跡できる状態を目指す課題である。
制約
- 三地域で運用し、地域間network partitionを30分間注入できる決定的simulationを持つ
- 同一予約枠のactive reservation数は常に1以下とし、timeout後の結果不明と重複要求を安全に処理する
- 予約journeyのsynthetic SLOを30日窓99.9パーセント、通常時p95 2000ms以下として定義する
- 氏名、連絡先、健康上の配慮を最小化し、保存地域、保持期間、削除、監査、内部者脅威を明示する
- keyboard、200パーセントzoom、読み上げ、低帯域の各条件で主要journeyを完了できる
- 通常、重複、順序入替、依存遅延、地域分断、回復のfixtureを固定して結果を再現可能にする
- 需要は通常1000 RPS、peak 10000 RPSのsynthetic入力とし、安全容量と月間運用時間を比較する
- 同一artifactを段階配信し、canary悪化時に15分以内でrollback outcomeを検証する
- 実在患者情報、live価格、秘密情報、有料外部serviceを証拠へ含めない
- 三地域の担当者はUTC基準の非同期RFCで判断し、timezone overlapが0時間でも異論を追跡できる
提出証拠
- Build
- 要求・反例・不変条件から追跡できるdomain model、versioned API、冪等性、storage ADR、transaction schedule、分断simulation、脅威model、RED-GREEN-REFACTOR履歴、accessibility regressionを含む実行可能repository
- Operate
- 利用者journey由来のSLI・SLO・alert・runbook、負荷曲線、memory hot-path測定、地域分断と依存遅延の障害実験、canaryとrollback結果、incident timeline、容量とunit economicsの記録
- Explain
- 利用者・実装者・security・operations・事業責任者向けのviewを持つ設計文書、選ばなかった案と反証条件を含むADR、UTC基準の非同期RFC、静的図と同等の表・文章
- Review
- 第三者がpriority付きfindingを提出し、author fix後の別snapshotを独立再評価する。peak需要という単一制約だけを変更して全証拠を再計算し、SLO・risk・cost・ADR・撤退条件を更新する
Milestone
- 利用者journey、用語衝突、例外、影響集団、success metric、guardrail、停止条件を定義して最初のADRを作る
- API、module、storage、transaction、distributed coordination、threat controlを一つの不変条件traceへ結ぶ
- 予約処理とfailure simulatorをTDDで実装し、algorithm、memory、concurrency、deadline、accessibilityを実測する
- 負荷・分断・canary悪化を注入し、SLO、runbook、rollback、incident review、capacity investmentを結果で閉じる
- 第三者review、author fix、独立再評価、単一制約transferを行い、team interface、RFC、ADRを更新する
レビュー質問
- 二重予約を防ぐ不変条件はAPI、transaction、dedupe、reconciliationのどこで維持されるか
- 2000ms期限はDNS、接続、TLS、service、retry、後処理へどう配分されるか
- 三地域配置を棄却すべき反証条件と、別案が有利になる需要・residency条件は何か
- SLO、負荷曲線、incident、capacity、costは同じ利用者journeyとartifactへ結び付くか
- privacy、accessibility、低帯域、高リスク集団の害は平均値に隠れていないか
- reviewとtransfer後に設計・実装・運用証拠を実際に再実行し、変わらない結論も説明したか
統合するレッスン
- システム思考とエンジニアリングのトレードオフ
主評価: 同期完了、地域queue、縮退受付を同じ制約で比較し、二次効果と反証条件を含むADRを更新する
- アルゴリズム選択を計算量と測定で検証する
主評価: 予約枠探索の入力分布と件数を固定し、複数案を七回以上反復測定して交差点を検証する
- CPU・メモリ経路とアクセス局所性
主評価: availability scanの作業集合と走査順だけを変え、memory profileからlocality仮説を検証する
- プロセス・スレッド・並行性の不変条件
主評価: 二重予約のinterleavingを決定的に再現し、不変条件と停止性を保つ同期境界を検証する
- ネットワーク遅延と部分失敗を層別に診断する
主評価: DNSから予約完了までのdeadlineを層別に測定し、retryと結果不明の停止条件を導く
- 要求を発見し、境界と例外をドメインモデルへ結ぶ
主評価: 用語衝突、例外、未宣言ruleをcommand、event、不変条件へ追跡してdomain境界を検証する
- API契約を失敗、再送、進化まで設計する
主評価: 重複要求と旧clientを再現し、冪等key、Problem Details、version互換性をcontract testで検証する
- 変更理由でモジュール境界を設計しADRで更新する
この課題では統合・補強して扱います。
- TDDとリスク別テスト戦略で変更を証明する
この課題では統合・補強して扱います。
- 脅威モデルを設計・検証・残余リスクへ接続する
この課題では統合・補強して扱います。
- アクセスパターンと制約からストレージADRを再計算する
主評価: access pattern、整合性、成長、運用、回復を同じcriteriaで比較しstorage ADRを再評価する
- 分離異常を再現し、abortとretryまで設計する
主評価: 二つの予約transaction scheduleを再現し、分離異常、abort、whole-transaction retryを検証する
- 重複・順序・分断を再現し復旧境界を設計する
主評価: duplicate、reorder、partition、replay、reconciliation後の利用者結果を固定seedで再現する
- 負荷曲線と実測profileから安全容量を判断する
主評価: tail、error、queue、plateau、回復を測定し、peak需要に対する安全容量とheadroomを導く
- 利用者journeyからSLI、SLO、alert、runbookを導く
主評価: 予約journeyからgood event、SLI、SLO、burn alert、runbook、行動ownerを導き検証する
- 人間中心設計で静的サイトの利用可能性を監査する
この課題では統合・補強して扱います。
- 静的グラフィックスを同等の情報構造として設計する
この課題では統合・補強して扱います。
- 反証可能な仮説から停止判断までを事前に設計する
この課題では統合・補強して扱います。
- 読者の判断を支える設計文書とADRを構成する
この課題では統合・補強して扱います。
- 倫理・privacy・社会的影響を設計制約へ変える
主評価: affected population、data lifecycle、集団別害、mitigation、残余risk受容者を追跡して影響評価を更新する
- incident responseを検証可能な学習へ変える
この課題では統合・補強して扱います。
- CI・段階配信・supply chainを結果証拠で閉じる
この課題では統合・補強して扱います。
- engineering economicsで信頼性と容量へ投資する
この課題では統合・補強して扱います。
- コードレビューを協働品質システムとして運営する
この課題では統合・補強して扱います。
- チームインターフェースで社会技術アーキテクチャを設計する
この課題では統合・補強して扱います。
- 時差と言語を越える非同期RFCを設計する
この課題では統合・補強して扱います。
- 証拠と撤退条件で技術方針を率いる
主評価: risk、ethics、cost、不確実性、異論から投資順とwithdrawal conditionsを導き再評価する
評価基準
| Level | 観測可能な基準 |
|---|---|
| Incomplete | happy pathの構成図または実装だけを示し、不変条件、失敗注入、SLO、利用者影響、第三者reviewを証明していない |
| Developing | 主要機能と文書はあるが、測定条件、分断後回復、privacy・accessibility、rollback outcome、修正後再評価のいずれかが宣言に留まる |
| Proficient | 制約からdomain、API、data、security、実装、SLO、incident、costまでを追跡し、失敗注入・段階配信・第三者review・修正・独立再評価で結果を証明する |
| Exemplary | 測定限界と残余riskを明示し、単一制約の変更で全判断を再計算する。別contributorが同期説明なしで証拠を再現しstop・adapt・expandを判断できる |