diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/iteration.planuml b/analysis/05-Message_Queue_Partitioning/example/uml/iteration.planuml new file mode 100644 index 0000000..860f6f2 --- /dev/null +++ b/analysis/05-Message_Queue_Partitioning/example/uml/iteration.planuml @@ -0,0 +1,25 @@ +@startuml + +rectangle "Traversal" + +() previous +() current +() next + +previous --> current +current --> next + +note right + +save next + +detach current + +append to +destination queue + +continue with next + +end note + +@enduml diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/loop.plantuml b/analysis/05-Message_Queue_Partitioning/example/uml/loop.plantuml new file mode 100644 index 0000000..1c5f70e --- /dev/null +++ b/analysis/05-Message_Queue_Partitioning/example/uml/loop.plantuml @@ -0,0 +1,13 @@ +@startuml + +[*] --> Outgoing + +Outgoing --> Sent : success + +Outgoing --> Retry : retry == true + +Retry --> Outgoing : rescheduled + +Sent --> [*] + +@enduml diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/loop.png b/analysis/05-Message_Queue_Partitioning/example/uml/loop.png new file mode 100644 index 0000000..ea40aaa Binary files /dev/null and b/analysis/05-Message_Queue_Partitioning/example/uml/loop.png differ diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.plantuml b/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.plantuml new file mode 100644 index 0000000..730dc9a --- /dev/null +++ b/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.plantuml @@ -0,0 +1,17 @@ +@startuml + +rectangle "Outgoing Queue" as Q1 +rectangle "Ready Queue" as Q2 +rectangle "Retry Queue" as Q3 + +Q1 --> Q2 : move node +Q1 --> Q3 : move node + +note bottom + +Every message belongs +to exactly one queue. + +end note + +@enduml diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.png b/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.png new file mode 100644 index 0000000..bf81d2c Binary files /dev/null and b/analysis/05-Message_Queue_Partitioning/example/uml/ownership transfer.png differ diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.plantuml b/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.plantuml new file mode 100644 index 0000000..4eebcf7 --- /dev/null +++ b/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.plantuml @@ -0,0 +1,39 @@ +@startuml + +left to right direction +skinparam linetype ortho +skinparam shadowing false + +package "Before Partition" { + rectangle "A\nretry = false" as A + rectangle "B\nretry = true" as B + rectangle "C\nretry = false" as C + rectangle "D\nretry = true" as D + + A --> B : next + B --> C : next + C --> D : next +} + +package "After Partition" { + package "Ready Queue" { + rectangle "A" as ReadyA + rectangle "C" as ReadyC + + ReadyA --> ReadyC : next + } + + package "Retry Queue" { + rectangle "B" as RetryB + rectangle "D" as RetryD + + RetryB --> RetryD : next + } +} + +A ..> ReadyA : move +B ..> RetryB : move +C ..> ReadyC : move +D ..> RetryD : move + +@enduml diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.png b/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.png new file mode 100644 index 0000000..6398703 Binary files /dev/null and b/analysis/05-Message_Queue_Partitioning/example/uml/queue_splitting.png differ diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.plantuml b/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.plantuml new file mode 100644 index 0000000..ad64293 --- /dev/null +++ b/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.plantuml @@ -0,0 +1,20 @@ +@startuml + +participant Queue +participant Algorithm +participant Ready +participant Retry + +Queue -> Algorithm : get next node + +alt retry == false + +Algorithm -> Ready : append(node) + +else retry == true + +Algorithm -> Retry : append(node) + +end + +@enduml diff --git a/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.png b/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.png new file mode 100644 index 0000000..f549b7a Binary files /dev/null and b/analysis/05-Message_Queue_Partitioning/example/uml/sequence-diagram.png differ