Sidecar - アプリケーションに機能を足す補助コンテナ

Sidecar とは、主となるアプリケーションのコンテナと同じ実行単位に一緒に配置し、そのアプリケーションに機能を足す補助コンテナです。ログの転送・設定の取得・通信の暗号化のような、業務ロジックと直交する処理を担当します。ここで言う実行単位とは、同じマシンにまとめて配置され、まとめて作られ削除されるコンテナの集まりを指します。 ...

2026年8月8日 · 更新: 2026年8月26日 · 13 分 · nchika

Ambassador - 外部との通信を仲介する補助コンテナ

Ambassador とは、アプリケーションのコンテナと同じ実行単位に配置し、外部との通信を代わりに引き受ける補助コンテナです。通信を代わりに受け取って転送する物をプロキシと呼び、Ambassador はその 1 つです。例えばアプリケーションから外に接続する構成では、アプリケーションは localhost の 1 つの宛先へ接続し、実際の接続先が何台あるのか、どれに振り分けるのかは Ambassador が判断します。 ...

2026年8月8日 · 更新: 2026年8月26日 · 11 分 · nchika

Adapter - アプリケーションの出力を外向きに揃える補助コンテナ

Adapter とは、アプリケーションと同じ実行単位に配置し、外から見える出力とインターフェースを統一する補助コンテナです。アプリケーションのコードには手を入れず、外から見た形だけを揃えます。 ...

2026年8月8日 · 更新: 2026年8月26日 · 11 分 · nchika

Event Sourcing - 出来事の並びを一次記録にする

Event Sourcing とは、アプリケーションの現在の状態ではなく、状態を変えた出来事の並びを永続化し、状態はその再生で復元する方式です。Martin Fowler 氏の Event Sourcing は、この方式を「アプリケーションの状態への全ての変更をイベントの列として記録する」と要約しています。 ...

2026年8月10日 · 更新: 2026年8月26日 · 12 分 · nchika

CQRS - コマンドとクエリの分離

CQRS(Command Query Responsibility Segregation、コマンドとクエリの責務分離)とは、情報の更新に使うモデルと、読み取りに使うモデルを分けられるという考え方です。Martin Fowler 氏の CQRS は、Greg Young 氏の説明で初めて知ったパターンとしてこの考え方を紹介し、中心にある発想を「情報の更新には、読み取りに使うモデルとは別のモデルを使える」と要約しています。 ...

2026年8月10日 · 更新: 2026年8月26日 · 11 分 · nchika

Feature Flag - 機能の有効・無効を切り替える設計

Feature Flag は、デプロイしたコードの振る舞いを設定や実行時の情報によって切り替える仕組みです。この実践を体系的に整理した Pete Hodgson 氏の「Feature Toggles (aka Feature Flags)」は、両者を同義として交換可能に使っています。ここでは Feature Flag で通します。 ...

2026年8月17日 · 更新: 2026年8月26日 · 10 分 · nchika

Plugin Architecture - コアを肥大化させずに機能を足す

Plugin Architecture は、コア(core、常に動く中心部分)に手を入れずに機能を追加できるようにする設計です。コアが持つのは、処理の入れ物と、拡張が満たすべき境界だけです。エディタに拡張機能を入れると、本体を差し替えずに機能が増えます。Go の database/sql がデータベースドライバを Register 関数で受け取るのも、同じ形です。 ...

2026年8月17日 · 更新: 2026年8月26日 · 11 分 · nchika

Parse, Don't Validate - 不正な状態を後段に持ち込まない

Parse, don’t validate は、「外部から来たデータを検査したら、その検査で分かった事実を型として持ち運ぶ」という設計方針です。Alexis King 氏が 2019 年に公開した「Parse, don’t validate」で示しました。 ...

2026年8月17日 · 更新: 2026年8月26日 · 10 分 · nchika