continuum

Component Dependencies — continuum

Project: continuum Phase: INCEPTION — Application Design Date: 2026-05-08 Depth: Comprehensive

Note: 本ドキュメントは コンポーネント間の依存関係マトリクス + 通信パターン + データフロー図 を体系的に定義する。


1. Dependency Matrix

行: 依存元(caller)/ 列: 依存先(callee)。✓ S = Synchronous(REST or Direct Invoke)、✓ A = Async(EventBridge)、✓ W = WebSocket、✓ R = Read-only Storage Access。

↓ from / to → C-FE-01 C-FE-02 C-FE-03 C-FE-04 C-FE-05 C-FE-06 C-FE-07 C-FE-08 C-BE-01 C-BE-02 C-BE-03 C-BE-04 C-BE-05 C-BE-06 C-BE-07 C-BE-08 C-BE-09 C-BE-10
C-FE-01 WebApp                    
C-FE-02 AuthUI               ✓ S                  
C-FE-03 InboxView       ✓ R   ✓ W   ✓ S ✓ S     ✓ S        
C-FE-04 OutboundReviewView       ✓ R           ✓ S   ✓ S        
C-FE-05 DashboardView           ✓ W               ✓ S    
C-FE-06 MaturitySettingsView                       ✓ S        
C-FE-07 DemoSetPieceView             ✓ W                    
C-FE-08 WebSocketClient                               ✓ S  
C-BE-01 AuthHandler                         ✓ S        
C-BE-02 ContactHandler                                 ✓ S
C-BE-03 InboundResponseEngine                   ✓ S     ✓ S   ✓ A ✓ S  
C-BE-04 OutboundOrchestrator                   ✓ S   ✓ S ✓ S ✓ S ✓ A ✓ S  
C-BE-05 SignalExtractor                   ✓ S              
C-BE-06 MaturityPhaseManager                             ✓ A    
C-BE-07 MACPCoordinator                   ✓ S       ✓ S ✓ A ✓ S  
C-BE-08 DashboardEngine                           ✓ R   ✓ S  
C-BE-09 WebSocketBroker                                  
C-BE-10 MockSocialFeedSeeder                                  

Note (SignalExtractor): C-BE-05 SignalExtractor → C-BE-02 ContactHandler の関係を ✓ S に修正(旧 ✓ R)。SignalExtractor はコンタクトメタデータの 読み取り(ingestFeed 時)+ Availability Window の 書き込み(persistWindows)の両方を行うため、Read-only ではない。components.md L292 / component-methods.md SignalExtractor.persistWindows() と整合(2026-05-08T06:15:24Z 修正)。

主要パターンの説明


2. Communication Patterns

2.1 Frontend ↔ Backend

Pattern: Synchronous REST

Pattern: WebSocket

2.2 Backend Inter-Component

Pattern: Direct Lambda Invocation

Pattern: Internal HTTP via API Gateway

Pattern: EventBridge

2.3 Backend ↔ External AWS Services

利用先 利用元コンポーネント 通信パターン
Cognito User Pool AuthHandler, AuthUI Cognito SDK
DynamoDB Single-Table 全 Backend コンポーネント DynamoDB SDK
Bedrock InboundResponseEngine, OutboundOrchestrator, SignalExtractor, MACPCoordinator Bedrock Runtime API
AgentCore Runtime InboundResponseEngine, OutboundOrchestrator, MACPCoordinator AgentCore SDK
AgentCore Memory InboundResponseEngine, OutboundOrchestrator, MACPCoordinator AgentCore Memory API
AgentCore Identity MACPCoordinator AgentCore Identity API(テナント間 Lookup)
AgentCore Gateway MACPCoordinator AgentCore Gateway(cross-tenant HTTPS + mTLS)
EventBridge 全 Backend コンポーネント PutEvents API
Secrets Manager 全 Backend コンポーネント Secrets Manager SDK

3. Data Flow Diagrams

3.1 Flow A: Inbound 応答生成(Lv1 慎重期)

┌────────────┐      ┌─────────────────┐      ┌──────────────────────────┐
│  InboxView │      │  API Gateway    │      │ InboundResponseEngine    │
│  (FE)      │      │  REST           │      │ (BE Lambda)              │
└──────┬─────┘      └────────┬────────┘      └────────────┬─────────────┘
       │                     │                            │
       │ POST /inbound/{id}/ │                            │
       │  generate           │                            │
       ├────────────────────>│                            │
       │                     ├───────────────────────────>│
       │                     │                            │
       │                     │              ┌─────────────┴────────────┐
       │                     │              │ 1. JWT verify             │
       │                     │              │ 2. fetch Contact          │
       │                     │              │ 3. fetch Past Interact'ns │
       │                     │              │ 4. Bedrock 3-variation    │
       │                     │              │ 5. Relational Calibration │
       │                     │              │ 6. Plausibility check     │
       │                     │              └─────────────┬────────────┘
       │                     │                            │
       │                     │  3 variations response     │
       │                     │<───────────────────────────┤
       │  3 variations       │                            │
       │<────────────────────┤                            │
       │                     │                            │
       │ user selects + sends│                            │
       │ POST /inbound/{id}/ │                            │
       │  send               │                            │
       ├────────────────────>├───────────────────────────>│
       │                     │              ┌─────────────┴────────────┐
       │                     │              │ 1. mark responded        │
       │                     │              │ 2. persist to Memory     │
       │                     │              │ 3. publish event:        │
       │                     │              │    inbound.response.sent │
       │                     │              └─────────────┬────────────┘
       │                     │                            │
       │                     │                            │  EventBridge
       │                     │                            │  ─────────────>
       │                     │                            │   to: AnalyticsService
       │                     │                            │       MaturityPhaseManager

3.2 Flow B: Outbound Strategic Outreach + MACP

┌─────────────────────┐
│ EventBridge Daily   │
│ Scheduler (3am JST) │
└──────────┬──────────┘
           │ trigger
           v
┌──────────────────────────┐      ┌──────────────────┐      ┌──────────────────┐
│ OutboundOrchestrator     │─────>│ SignalExtractor  │─────>│ DynamoDB         │
│ scheduleStrategicOutreach│      │ extract Windows  │      │ (read MockFeed)  │
└──────────┬───────────────┘      └──────────────────┘      └──────────────────┘
           │
           │ Optimal Windows
           v
┌──────────────────────────┐      ┌──────────────────┐
│ generate invitation text │─────>│ Bedrock          │
│ + Plausibility Eng       │      │ (LLM call)       │
└──────────┬───────────────┘      └──────────────────┘
           │
           │ candidate
           v
┌──────────────────────────┐
│ MACPCoordinator          │
│ attemptMACP(candidate)   │
└──────────┬───────────────┘
           │
   ┌───────┴────────┐
   │                │
   v                v
[non-Continuum]  [Continuum user]
   │                │
   │                v
   │         ┌──────────────────────────────┐
   │         │ Peer Discovery (AgentCore    │
   │         │ Identity)                    │
   │         └──────────┬───────────────────┘
   │                    │
   │                    v
   │         ┌──────────────────────────────┐      ┌─────────────────────┐
   │         │ Inter-Agent Negotiation     │─────>│ AgentCore Gateway   │
   │         │ (cross-tenant via Gateway)  │<─────│ (Cross-tenant mTLS) │
   │         └──────────┬───────────────────┘      └─────────────────────┘
   │                    │
   │       ┌────────────┴─────────────┐
   │       │                          │
   │       v                          v
   │  [agreement met]           [no agreement]
   │       │                          │
   │       v                          │
   │  ┌────────────────────────┐      │
   │  │ Schedule Theatrical    │      │
   │  │ Messages (EventBridge) │      │
   │  └────────────┬───────────┘      │
   │               │                   │
   │               v                   │
   │  ┌────────────────────────┐      │
   │  │ AgentCore Memory       │      │
   │  │ (persist agreement)    │      │
   │  └────────────────────────┘      │
   │                                   │
   v                                   v
[Outbound Pending Queue]    [Outbound Pending Queue]
   │                                   │
   v                                   v
[user reviews / Lv2-5 auto-sends → DynamoDB updates → AnalyticsService event]

3.3 Flow C: MACP Theatrical Performance(Realtime Demo)

┌──────────────────┐
│ EventBridge:     │
│ macp.theater.send│
│ (T+0, T+3h, T+1d,│
│  T+2d, T+3d)     │
└────────┬─────────┘
         │ scheduled trigger
         v
┌──────────────────────────┐
│ MACPCoordinator          │
│ executeTheaterStep       │
└────────┬─────────────────┘
         │
         v
┌──────────────────────────┐      ┌──────────────────────────┐
│ Push to A's Inbox        │      │ Push to B's Inbox        │
│ (DynamoDB write)         │      │ (DynamoDB write)         │
└────────┬─────────────────┘      └────────┬─────────────────┘
         │                                  │
         v                                  v
┌──────────────────────────┐      ┌──────────────────────────┐
│ Publish event:           │      │ Publish event:           │
│ macp.message.delivered   │      │ macp.message.delivered   │
└────────┬─────────────────┘      └────────┬─────────────────┘
         │                                  │
         v                                  v
┌──────────────────────────────────────────────────────────────┐
│ WebSocketBroker.broadcastDemo(event)                         │
└────────┬─────────────────────────────────────────────────────┘
         │
         v
┌──────────────────────────────────────────────────────────────┐
│ DemoSetPieceView (Both A and B clients receive realtime)     │
│ - Update Split-Screen UI                                     │
│ - Append Negotiation Log                                     │
└──────────────────────────────────────────────────────────────┘

3.4 Flow D: Lv5 Nirvana Auto-Detection

┌──────────────────┐
│ EventBridge      │
│ Daily 03:00 JST  │
└────────┬─────────┘
         │
         v
┌──────────────────────────────────┐      ┌──────────────────┐
│ MaturityPhaseManager              │─────>│ DynamoDB Query   │
│ detectNirvanaCandidates          │      │ phase=Lv4        │
└────────┬─────────────────────────┘      │ AND consecDays>=30│
         │                                 │ AND lastOpen<-7d │
         │                                 └──────────────────┘
         │ candidate userIds
         v
┌──────────────────────────────────┐
│ for each candidate:              │
│   promoteToLv5(userId)           │
│     - update phase = Lv5         │
│     - stop notifications        │
│     - increment lifetimeNirvana  │
└──────────────────────────────────┘

[ユーザーがアプリを起動]
         │
         v
┌──────────────────────────────────┐
│ Any API call (e.g., GET /me)    │
│ MaturityPhaseManager.handleAppOpen│
└────────┬─────────────────────────┘
         │
         v
┌──────────────────────────────────┐
│ if phase == Lv5:                 │
│   demote to Lv4                  │
│   record lifetime daysInNirvana  │
│   award "Transcendence Achieved" │
└──────────────────────────────────┘

4. Critical Path Analysis

4.1 ハッピーパス: Lv1 ユーザーが応答 1 件

Step Component Latency Target Critical?
1. JWT 検証 API Gateway / AuthHandler < 50ms
2. fetch contact ContactHandler / DynamoDB < 100ms
3. fetch past interactions AgentCore Memory < 200ms
4. Bedrock 3-variation 生成 Bedrock < 4000ms
5. Relational Calibration InboundResponseEngine < 50ms  
6. Plausibility check InboundResponseEngine < 50ms  
Total   < 4500ms(< 5秒目標達成)  

4.2 MACP Demo: 6ステップ完了までの時間

Step 想定時間
1. Peer Discovery < 200ms
2. Negotiation < 2000ms(Bedrock 2回呼び出し)
3-7. Theatrical messages(5往復) デモタイムラプス: 30秒程度
8. Outcome Confirmation < 500ms
Total demo time 約 90秒(DS-1 受入基準達成)

5. Failure Modes & Recovery

Failure 影響 Recovery
Bedrock タイムアウト 応答生成不可 リトライ 1回 → ユーザーにエラー表示、再生成ボタン
AgentCore Gateway タイムアウト MACP 不成立 通常 Outbound へ Graceful Degradation(FR-9.2)
DynamoDB スロットリング 全機能低下 DynamoDB Auto Scaling、Lambda リトライ
WebSocket 接続切断 リアルタイム通知の欠落 クライアント側自動再接続 + REST polling fallback
Cognito 認証失敗 ログイン不可 エラー表示、ヘルプリンク提示
EventBridge 配信失敗 非同期処理の遅延 DLQ(Dead Letter Queue)で 24時間保持 + アラート

6. Coupling Analysis

6.1 高結合(Tight Coupling)— 意図的

6.2 低結合(Loose Coupling)

6.3 Strangler-friendliness