代码拉取完成,页面将自动刷新
@startuml
!include layout.puml
title
Load Aggregate
__Sequence Diagram__
end title
participant AggregateRepository
participant SnapshotRepository
participant AggregateFactory
participant StateAggregate
database Snapshot
database EventStore
autonumber "<b>[00]</b>"
[-> AggregateRepository++: load(aggregateId)
AggregateRepository -> SnapshotRepository++: load(aggregateId)
SnapshotRepository -> Snapshot++: load(aggregateId)
SnapshotRepository <-- Snapshot--: snapshot
alt snapshot exist
create StateAggregate
SnapshotRepository -> StateAggregate ++: deserialize snapshot to stateAggregate
SnapshotRepository <-- StateAggregate: stateAggregate
AggregateRepository <-- SnapshotRepository--: stateAggregate
else snapshot not exist
AggregateRepository -> AggregateFactory++: create(aggregateId)
create StateAggregate
AggregateFactory -> StateAggregate ++: create(aggregateId)
AggregateFactory <-- StateAggregate: stateAggregate
AggregateRepository <-- AggregateFactory--: stateAggregate
end
AggregateRepository -> EventStore++: loadEventStream(aggregateId, aggregateVersion)
AggregateRepository <-- EventStore--:DomainEventStream
AggregateRepository -> StateAggregate:sourcing(DomainEventStream)
AggregateRepository <-- StateAggregate: stateAggregate
[<-- AggregateRepository: stateAggregate
@enduml
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。