4.1 理想的な統合技術の探索 4.1.1 破壊的変更を回避する 4.1.2 APIを技術非依存にする 4.1.3 コンシューマにとって単純なサービスにする 4.1.4 内部の実装詳細を隠す 4.2 顧客とのインタフェース 4.3 共有データベース 4.4 同期と非同期 4.5 オーケストレーションとコレオグラフィ 4.6 リモートプロシージャコール(RPC) 4.6.1 技術的結合 4.6.2 ローカル呼び出しはリモート呼び出しとは異なる 4.6.3 脆弱性 4.6.4 RPCはひどいか 4.7 REST 4.7.1 RESTとHTTP 4.7.2 アプリケーション状態エンジンとしてのハイパーメディア(HATEOAS) 4.7.3 JSONか、XMLか、他の何かか 4.7.4 便利すぎることに注意する 4.7.5 HTTP上のRESTの欠点 4.8 非同期イベントベース連携の実装 4.8.1 技術選択 4.8.2 非同期アーキテクチャの複雑さ 4.9 状態マシンとしてのサービス 4.10 Rx(Reactive Extentions) 4.11 マイクロサービスの世界におけるDRYとコード再利用のリスク 4.11.1 クライアントライブラリ 4.12 参照によるアクセス 4.13 バージョニング 4.13.1 最大限の先送り 4.13.2 破壊的変更の早期の把握 4.13.3 セマンティックバージョニングの利用 4.13.4 異なるエンドポイントの共存 4.13.5 複数のサービスバージョンの同時使用 4.14 ユーザインタフェース 4.14.1 デジタルへ向けて 4.14.2 制約 4.14.3 API合成 4.14.4 UI部品合成 4.14.5 フロントエンド向けのバックエンド(BFF) 4.14.6 ハイブリッド手法 4.15 サードパーティソフトウェアとの統合 4.15.1 制御の欠如 4.15.2 カスタマイズ 4.15.3 統合スパゲティ 4.15.4 思い通りにする 4.15.5 ストラングラー(絞め殺し)パターン 4.16 まとめ