アーキテクチャドキュメントを書くときに気をつけること
2025年5月25日概要 システム設計においてアーキテクチャドキュメントは重要な役割を果たす。特に設計段階においては、関係者に対して設計の妥当性を説明し、合意を形成するための資料として機能する。このドキュメントは、単なる設計情報の羅列ではなく、読者の理解と納得を導くための戦略的な文書であるべきである。 目的を明確にする ドキュメントを作成するにあたって最初に意識すべきは、その目的である。この文書が誰に向けたものであり...
概要 システム設計においてアーキテクチャドキュメントは重要な役割を果たす。特に設計段階においては、関係者に対して設計の妥当性を説明し、合意を形成するための資料として機能する。このドキュメントは、単なる設計情報の羅列ではなく、読者の理解と納得を導くための戦略的な文書であるべきである。 目的を明確にする ドキュメントを作成するにあたって最初に意識すべきは、その目的である。この文書が誰に向けたものであり...
概要 システムの仕様をドキュメントに書き出したい時にどういった構成であるべきか考えることが偶にある。 自分的システム仕様書の構成を記す。 新しいプロジェクトの設計フェーズはもちろん、既存システムの仕様理解のためにもなる構成になっているはず。 構成 01_overview.md # 全体概要 02_system_architecture.md # システム構成 03_dat...
概要 コンテキストマップで整理されたコンテキストについて、なぜそのような切り分け方をしたのか、切り分ける意味が何かといったことを開発者以外にも伝えたい、という課題があった。 そこで本稿では、「境界づけられたコンテキスト」について、開発者以外にも伝わるような説明を試みる。 コンテキストの違いを意識する 同じ言葉であっても、コンテキストが異なれば言葉の意味が変わることがある。 例えば「注文」という言葉...
開発者とアーキテクトのためのコミュニケーションガイド ―パターンで学ぶ情報伝達術を読んだ。 視覚情報やテキスト、言語・非言語、ドキュメンテーションなどコミュニケーションに関することを話題とした本。 タイトルは、ソフトウェアエンジニアのためのドキュメンテーションガイドと読み替えても良さそうな内容であると個人的には感じた。 読みやすい内容であるため数時間程度で読める。 自分としてはあまり目新しい情報は...
マルチテナントSaaSアーキテクチャの構築 ―原則、ベストプラクティス、AWSアーキテクチャパターンを読んだ。 SaaSアーキテクチャの概念や実践的なパターンについて書かれている。 SaaSアーキテクチャの二層構造(コントロールプレーンとアプリケーションプレーン) マルチテナントのデプロイモデル オンボーディング手法 アイデンティティ管理とテナント認証 テナントルーティングパターン データパーテ...
OPAを使用したマイクロサービスのアクセス制御システムの実装 OPAを採用したアクセス制御システムのPOCに取り組んでみたので、その内容についてまとめておく。 POCの設計や実装は以下のリポジトリで公開しているため、そちらも合わせて参照されたい。 bmf-san/poc-opa-access-control-system 1. はじめに 1.1 背景と課題 まず、本記事で扱う重要な概念として「権限...
要件最適アーキテクチャ戦略を読んだ。 ビジネス戦略を理解すること ドメイン駆動開発でアーキテクチャを実装していく 最初からマイクロサービスは厳しい といった内容が印象に残っている。 続編として実装編があるらしいが、現在のところ和訳はまだ出版されていない模様。 ビジネスと戦略のつなぎの話よりもDDDの実践的な内容とアーキテクチャの実装パターンについてもページが割かれているように見える。 ...
本記事ではソフトウェアアーキテクチャ・ハードパーツ ―分散アーキテクチャのためのトレードオフ分析の第1章~第4章をベースに、モノリスからのサービス分割を検討するときに役立つポイントを整理する。 すべての組織に当てはまる“銀の弾は存在しないが、「どんなトレードオフを見極めるべきか」を理解することで、より納得感のあるアーキテクチャを設計できるかもしれない。 1. 「ベストプラクティス」は存在しない —...
アーキテクチャ戦略について考える ソフトウェア開発において、必ずしもCTOやアーキテクトといった明確なポジションにいなくても、「アーキテクチャ戦略の必要性」を感じ、考える機会がある。 「現場で技術的な方針をまとめたいが、どこから手をつけたらよいかわからない」 「将来の拡張性や組織の成長を踏まえたアーキテクチャにしたい」 「既に蓄積した技術的負債にどう向き合えばよいか知りたい」 本記事では、こう...
GraphQL federationについて調べたことをまとめる。 GraphQL Federationとは GraphQL Federationは、複数のGraphQLサービスを統合するための方法である。 GraphQLのマイクロサービスのようなもので、単一のGraphQLエンドポイントとして複数のGraphQLサービスを利用することができるようにするアーキテクチャパターンである。 GraphQ...