-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsequence.puml
65 lines (54 loc) · 1.59 KB
/
sequence.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
@startuml
title Lexorank workflows
actor user
participant api as "REST API"
participant lexorank as "Lexorank Flow"
participant storage as "Relational Storage"
group showing existing rows
user -> api : show all request
activate api
api -> lexorank : ""getRows()""
activate lexorank
lexorank -> storage : ""getSnapshot()""
activate storage
lexorank <-- storage : snapshot of rows and ranks
deactivate storage
api <-- lexorank : rows ordered by rank
deactivate lexorank
deactivate api
end
group inserting a new row
user -> api : insert request
activate api
api -> lexorank : ""insertAt()""
activate lexorank
lexorank -> storage : ""lockSnapshot()""
activate storage
lexorank <-- storage : snapshot of rows and ranks
loop proposed rank collides
lexorank ->o storage : ""applyUpdateInCascade()""
end
lexorank -> storage : ""insertNewRecord()""
lexorank <-- storage : new row
deactivate storage
api <-- lexorank : new row
deactivate lexorank
deactivate api
end
group updating an existing row
user -> api : update request
activate api
api -> lexorank : ""changePosition()""
lexorank -> storage : ""lockSnapshot()""
activate storage
lexorank <-- storage : snapshot of rows and ranks
loop proposed rank collides
lexorank ->o storage : ""applyUpdateInCascade()""
end
lexorank -> storage : ""changeRankTo()""
lexorank <-- storage : updated row
deactivate storage
api <-- lexorank : updated row
deactivate api
end
@enduml