-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathcqrs.puml
89 lines (54 loc) · 1.18 KB
/
cqrs.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@startuml
skinparam component {
backgroundColor<<Aggregate>> lightBlue
backgroundColor<<Event handler>> lightGreen
}
skinparam noteFontSize 10
component "Person" <<Aggregate>> as P
database "Person\nschema" as PDB
component "Address" <<Aggregate>> as A
database "Address\nschema" as ADB
queue "Event Bus" as E
queue "Command Bus" as C
queue "Query Bus" as Q
interface "Command\nAPI" as CAPI
interface "Query\nAPI" as QAPI
component "Saga" <<Event handler>> as S
database "Saga\nschema" as SDB
component "Projection" <<Event handler>> as PR
database "Projection\nschema" as PRDB
CAPI -right-> C: "use"
C --down--> P: "dispatch"
C --down--> A: "dispatch"
P -left- PDB: "JPA"
A -right- ADB: "JPA"
P -right-> E: "apply"
E <.left. P: "listen"
A -left-> E: "apply"
A .left.> E: "listen"
S .down.> E: "listen"
S -up-> C: "dispatch"
S -right- SDB: "JPA"
PR .up.> E: "listen"
PR -right- PRDB: "JPA"
Q --up--> A: "query"
Q --up--> P: "query"
Q <-up-> PR: "query"
QAPI -right-> Q: "use"
note left of PR
1..*
denormalized
endnote
note left of S
1..*
workflow
endnote
note right of C
Axon server
infrastructure
endnote
note right of Q
Axon server
infrastructure
endnote
@enduml