workflow 领域的 projection/readmodel 实现。当前 durable materialization 已显式拆分为 authority current-state replica 和 derived artifacts:
- authority:
WorkflowRunGAgent + WorkflowRunState + root committed events - current-state replica:
WorkflowExecutionCurrentStateDocument - durable artifacts:report / timeline / graph / actor binding
- session observation:AGUI / live workflow run events
%%{init: {"maxTextSize": 100000, "flowchart": {"useMaxWidth": false, "nodeSpacing": 10, "rankSpacing": 50}, "themeVariables": {"fontSize": "10px"}}}%%
flowchart LR
RUN["WorkflowRunGAgent committed observation"]
CUR["WorkflowExecutionCurrentStateProjector"]
REP["WorkflowRunInsightReportArtifactProjector"]
TL["WorkflowRunTimelineArtifactProjector"]
GRA["WorkflowRunGraphArtifactProjector"]
AGUI["WorkflowExecutionRunEventProjector"]
CURDOC["Current-State Document"]
REPDOC["WorkflowRunInsightReportDocument"]
TLDOC["WorkflowRunTimelineDocument"]
GRAPH["Graph Store"]
HUB["ProjectionSessionEventHub<WorkflowRunEventEnvelope>"]
RUN --> CUR --> CURDOC
RUN --> REP --> REPDOC
RUN --> TL --> TLDOC
RUN --> GRA --> GRAPH
RUN --> AGUI --> HUB
- WorkflowExecutionMaterializationPort.cs
- WorkflowExecutionCurrentStateQueryPort.cs
- WorkflowExecutionArtifactQueryPort.cs
- WorkflowExecutionCurrentStateProjector.cs
- WorkflowRunInsightReportArtifactProjector.cs
- WorkflowRunTimelineArtifactProjector.cs
- WorkflowRunGraphArtifactProjector.cs
- WorkflowRunGraphArtifactMaterializer.cs
- 不存在
WorkflowRunInsightGAgentsecondary chain - current-state 只承认 actor-scoped current-state replica
- report/timeline/graph 明确属于 derived durable artifacts
- current-state/report/timeline/graph 都直接消费 root committed observation
- session release 不会停止 durable materialization
- session activation 只保留
rootActorId + commandId - graph 直接读取 graph store,不再从 report document 派生