はじめに
前回に続き、アーキテクトの教科書を読んで思ったことを書き連ねていきます。
第3章は「アーキテクチャの設計」です。
モノリシックアーキテクチャと分散アーキテクチャ
ネットや書籍では、モノリスを悪とみなし、分散アーキテクチャを、まるで銀の弾丸であるかのように礼賛する内容を見かけることがあるのですが、本書ではそれぞれのメリデメを客観的に説明しているところが良かったです。
モジュラーモノリス
外側から見ると単一ですが、内部的には独立して疎結合で結びついているアプリケーションのことをこう呼ぶそうです。
補償トランザクション
Sagaパターン(複数サービスをまたがる分散トランザクションで一部が失敗した時に、整合性を整えること)において、後始末をする(成功した分のトランザクションを元に戻す)トランザクションのことをこう呼ぶそうです。
BFF (Backends for frontends) パターンは、SOLID原則の中のインターフェース分離の原則 (ISP) をアーキテクチャレベルに拡張したパターンと考えることができる
印象に残った文章です。確かにそのような考え方もありうるなと、目から鱗でした。
ADR (Architecture Decision Record)
アーキテクチャ上の判断を記録し、共有するための手法です。
大規模(長期間)に渡るシステム開発の場合、コードの変更はGitでトレースできますが、アーキテクチャレベルのような大きな概念になってくると、いつ、なぜ、こうなったのか、の情報が失われることがあります。
こうやって記録を残しておいて、後から検索できるようにしておくと便利ですね。