-
Notifications
You must be signed in to change notification settings - Fork 0
/
FRM full ORIGINAL.plantuml
184 lines (157 loc) · 6.29 KB
/
FRM full ORIGINAL.plantuml
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
' SPDX-License-Identifier: Apache-2.0
'PREVIEW WITH ALT-D >>>
/'*****
License
--------------
Copyright © 2021 LexTego
--------------
******'/
@startuml
autonumber
skinparam backgroundColor #White
skinparam handwritten false
skinparam shadowing false
skinparam sequence {
ArrowColor ForestGreen
ActorBorderColor Black
ActorBackgroundColor DarkGreen
ActorFontColor Black
ActorFontName Arial
ActorFontSize 17
ActorFontStyle Bold
LifeLineBorderColor ForestGreen
LifeLineBackgroundColor Technology
ParticipantBorderColor Black
ParticipantBackgroundColor ForestGreen
ParticipantFontColor White
ParticipantFontName Arial
ParticipantFontSize 17
GroupBodyBackGroundColor transparent
BoxFontSize 24
}
skinparam databaseBorderColor Black
skinparam databaseBackgroundColor Technology
skinparam ParticipantPadding 20
skinparam BoxPadding 10
'hide footbox
' title Hub-initiated Fire & Forget Transaction Monitoring Service Request
' declare actors
box "\nActio Financial Crime Risk Management Platform\n" #BUSINESS
participant "Actio\nTMS\API" as tms
database "Darkive" as darchive
participant "Data\nPreparation" as dataprep #Red
database "Enrichment\nSource" as enrichment #Red
participant "Transaction\nRouter" as trouter
participant "Channel\nRouter\n& Setup\nProcessor" as crsp
participant "Rules\nProcessors" as rules
participant "Typology\nProcessors" as typologies
database "Typology\nCache” as typologycache
participant "Channel\nAggregation\n& Decisioning\nProcessor" as cadp
database “Channel\nCache” as channelcache
participant "Transaction\nAggregation\n& Decisioning\nProcessor" as tadp
database “Transaction\nCache” as transactioncache
database "History" as history
end box
participant "Workflow\nOrchestator" as workflow
' start flow
tms -> darchive: Store primeval data
tms -> dataprep: Prepare data
deactivate tms
activate dataprep #Red
dataprep -> enrichment: Retrieve encrichment data
activate enrichment #Red
enrichment -> dataprep: Encrichment data
deactivate enrichment
dataprep -> dataprep: Enrich data
dataprep -> trouter: Evaluate transaction
deactivate dataprep
activate trouter
trouter -> trouter: Determine channels
trouter -> crsp: Evaluate transaction
deactivate trouter
group For each required channel
activate crsp
crsp -> crsp: Determine typologies
crsp -> typologies: Retrieve rules lists
activate typologies
typologies -> crsp: rules lists
deactivate typologies
crsp -> crsp: Normalise rules
crsp -> rules: Evaluate transaction
deactivate crsp
group For each required rule processor
activate rules
rules -> rules: Execute rule
rules -> typologies: Submit rule results
deactivate rules
activate typologies
end
group For each required typology processor
group Repeat until all rule results delivered is True
alt Number of Associated Rules > 1 condition met
typologies -> typologycache: Read Rules results for \n associated transaction
typologycache -> typologies: Receive Rules results for \n associated transaction
typologies -> typologies: Append current Rule result to \nreceived results from cache
alt Evaluate if all \n associated Rules Results are available condition is met
typologies -> typologies: Set all rule results delivered is True
else
typologies -> typologycache: Write Rules results for \n associated transaction
else
typologies -> typologies: Use rule result
typologies -> typologies: Set all rule results delivered is True
end
end
typologies -> typologies: Calculate typology score
typologies -> cadp: Submit typology score
deactivate typologies
activate cadp
end
group For each channel aggregation & decisioning processor
group Repeat until all typology results submitted is True
alt Number of Associated Typologies > 1 condition met
cadp -> channelcache: Read Typology results for \n associated transaction
channelcache -> cadp: Receive Typology results for \n associated transaction
cadp -> cadp: Append current Typology result to \nreceived results from cache
alt Evaluate if all \n associated Typology Results are available condition is met
cadp -> cadp: Set all Typology results submitted is True
else
cadp -> channelcache: Write Typology results for \n associated transaction
else
cadp -> cadp: Use Typology result
cadp -> cadp: Set all Typology results delivered is True
end
end
alt Interrim alert condition met
cadp -> workflow: Handle interrim alert
end
end
cadp -> cadp: Calculate channel result
cadp -> tadp: Submit channel results
deactivate cadp
activate tadp
end
group For each transaction aggregation & decisioning processor
group Repeat until all channel results Submitted
alt Number of Associated Channels > 1 condition met
tadp -> transactioncache: Read Channel results for \n associated transaction
transactioncache -> tadp: Receive Channel results for \n associated transaction
tadp -> tadp: Append current Channel result to \nreceived results from cache
alt Evaluate if all \n associated Channel Results are available condition is met
tadp -> tadp: Set all Channel results submitted is True
else
tadp -> transactioncache: Write Channel results for \n associated transaction
else
tadp -> tadp: Use Channel result
tadp -> tadp: Set all Channel results delivered is True
end
end
tadp -> tadp: Calculate transaction result
tadp -> history: Submit transaction
tadp -> history: Submit transaction results
alt Alert conditions met
tadp -> workflow: Submit transaction results
deactivate tadp
end
end
end
@enduml