1 Service 5 Service 2 Service 4 HTTP Req. HTTP Res. Command Document Service 3 • API Facade が、WebAPI を公開します • HTTP Request を、API に対応する Command に変換し、Message Bus に送ります • Message Bus から Document が返されたら、HTTP Response に変換し、クライアントに返します API Facade
2 Service 4 HTTP Req. HTTP Res. Service 3 • API Facade は、Requestを受けたセッション内で同期的に 応答を返す必要があります • Commandの送信後、Documentを受信するか、タイムアウトするまで 待機(Block)します • API Facade が複数ノードで構成される場合、 Commandを送信したプロセスと、 Document を受け 取るプロセスを一致させるための仕組み が必要になります API Facade ⏳ Service 1 Command Service 1 Document API Facade の特殊事情
Bus Service 1 Service 5 Service 2 Service 4 HTTP Req. HTTP Res. Service 1 Command Service 1 Document Service 3 • Event は、すべてのサービスに対して Publish されます • Command は、Command を提供するサービスに対して Send されます • Document は、Command で指定された返信先( ReplyTo)に対して Send されます API Facade
1 Query Material izer Service 2 Service 4 HTTP GET Response Service 3 • QueryMaterializer は、他のサービスと同様に Eventを受け取り、必要に応じて QueryDB を更新 します • API Facade は参照系のAPI呼び出しに対して、QueryProcessor の該当処理を呼び出します • QueryProcessor は、QueryDB を参照し、必要な情報を取得して呼び出し元に返します API Facade Query DB Query Process or REST / RPC