-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathaddress-saga.puml
33 lines (30 loc) · 1.02 KB
/
address-saga.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@startuml
actor "User" as U
boundary "API" as I
participant "Command\nBus" as C
entity "Person" as P
participant "Event\nBus" as E
control "Saga" as S
entity "Address" as A
database "DB" as D
autonumber
U -> I: POST:\n/person/{personId}/address
I -> C: CMD:\nRequestPrivateAddressAssignmentCommand
C -> P: CMD:\nRequestPrivateAddressAssignmentCommand
P --> E: EVT:\nPrivateAddressAssignmentRequestedEvent
E --> S: EVT:\nPrivateAddressAssignmentRequestedEvent\n<b>START</b>
S -> D: JPA:\npersist Saga
S -> C: CMD:\nCreatePrivateAddressCommand
C -> A: CMD:\nCreatePrivateAddressCommand
A --> A: EVT:\nPrivateAddressCreatedEvent
A -> D: JPA:\npersist address
A --> E: EVT:\nPrivateAddressCreatedEvent
E --> S: EVT:\nPrivateAddressCreatedEvent
S -> C: CMD:\nAssignPrivateAddressCommand
C -> P: CMD:\nPrivateAddressAssignedEvent
P --> P: EVT:\nPrivateAddressAssignedEvent
P --> D: JPA:\npersist person/address relation
P --> E: EVT:\nPrivateAddressAssignedEvent
E --> S: EVT:\nPrivateAddressAssignedEvent\n<b>END</b>
S -> D: JPA\nremove Saga
@enduml