アーキテクチャのパターンがカタログになってるので気になるとこだけ読めるような構成。
今回はサービスベースアーキテクチャのことを知りたかったのでそこだけ読んだ。概要レベルの解説なので詳細はまた別途調べる必要があるけど、大体どんなもんか知ることができた。
そのほかに、アーキテクトとしての働き方、心がけ、キャリア開発などにも触れられているのでアーキテクトを目指してる人の参考になりそう。
サービスベースアーキテクチャ
マイクロサービスアーキテクチャのハイブリッドで最も実用的なアーキテクチャと考えられている。
マイクロサービスよりも粒度の大きいドメインでシステムを分割、データベースは単一でもよい。なのでデータベースのトランザクションを利用できる。
ユーザーインターフェースやデータベースはドメインごとに分けてもいい。
データベースアクセスを共通化すると変更の影響が大きいのでデータベースを論理的に分けて、アクセスライブラリも分割することも考える。共通テーブルアクセスはバージョン管理システムでロック。
ユーザーインターフェースやデータベースは、顧客向けと社内向けなどで分けることでセキュリティの強化も。
データベース共有やコード共有のためにサービス間通信をしないことで耐障害性とアプリケーション全体の可用性が高まる。サービス間のネットワークトラフィックも減り、分散トランザクションが減り、使用する帯域幅が減り、コスト効率と信頼性が高まる。