rights reserved. What is 3factor app? "3factor app is an architecture pattern for modern full-stack apps. 3factor enables building apps that are robust and scalable from the get go by using modern API architectures along with the power of Cloud." "3factor app とは、モダンなフルスタックアプリケーションのための アーキテクチャパターンで、モダンな API アーキテクチャとクラウド の⼒を利⽤することによって、最初から堅牢でスケーラブルなアプリ ケーションの構築を可能にする。" https://3factor.app/
rights reserved. サービス間の疎結合を実現するイベントルーター サービス A プロデューサー イベント イベントルーター コンシューマー サービス B サービス C サービス D イベントシステムに イベントを送信する 受信したイベントをもとに 何らかの処理を⾏う ルールに基づいて受信したイベントを フィルタリングし、ターゲットに送信する 過去のイベントログを保持する イベントストアの役割を果たす場合も
rights reserved. 3factor app の構築に最低限必要なもの フロントエンド ステート管理 データベース マイクロサービス マイクロサービス マイクロサービス GraphQL API イベントシステム サーバーレス関数 o GraphQL API サーバー o ステート管理⽤のデータベース o データベースの変更をキャプチャして イベントに変換するための"何か" o ダウンストリームのサービスにイベントを ルーティングするためのルールエンジン o ビジネスロジックを実⾏するサーバーレス関数
rights reserved. それぞれの factor の利点をおさらい ü スキーマそのものが API ドキュメントになる ü フロントエンドの開発者体験の向上 ü インタラクションに対する迅速なフィードバック ü リアルタイムなデータの反映 ü リクエスト数の削減 ü 軽量な API レイヤー ü サービス間を疎結合に ü 可⽤性やパフォーマンスの影響を最⼩限に ü エラー時の復旧、処理のリトライが容易 ü イベントログのアーカイブによって特定時点のステートを再現可能 ü サービスの追加または変更に対する拡張性 ü 開発者をサーバーの運⽤から解放し、ビジネス価値に集中 ü 市場投⼊までの時間を⾼速化 ü 需要に応じた柔軟なスケール ü 利⽤した分だけの課⾦で無駄なコストを削減 ü マネージドな可⽤性およびセキュリティ
rights reserved. The Right Tool for the Right Job イベント サーバーレス GraphQL ü 本当に 3factor 必要か︖ ü この factor でないと実現できないか︖ ü そもそも何を実現したいのか︖ アーキテクチャパターンを採⽤する前に...