-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsample.dot
More file actions
148 lines (144 loc) · 15.7 KB
/
Copy pathsample.dot
File metadata and controls
148 lines (144 loc) · 15.7 KB
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
digraph SampleVisualizationNet {
rankdir=TB;
nodesep=0.5;
ranksep=0.75;
forcelabels="true";
overlap="false";
fontname="Helvetica,Arial,sans-serif";
outputorder="edgesfirst";
node [fontname="Helvetica,Arial,sans-serif", fontsize=12];
edge [fontname="Helvetica,Arial,sans-serif", fontsize=10];
subgraph cluster_producer {
label="producer";
style="rounded,dashed";
bgcolor="#FAFAFA";
penwidth=1.5;
p_producer_valid [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="producer/valid", fixedsize="true"];
p_producer_prepared [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="producer/prepared", fixedsize="true"];
p_producer_invalid [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="producer/invalid", fixedsize="true"];
t_producer_prepare [label="producer/prepare [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_producer_validate [label="producer/validate [0, 50]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
j_producer_validate__xor_0 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
t_producer_prepare -> p_producer_prepared [color="#333333", style="solid", arrowhead="normal"];
p_producer_prepared -> t_producer_validate [color="#333333", style="solid", arrowhead="normal"];
t_producer_validate -> j_producer_validate__xor_0 [color="#333333", style="solid", arrowhead="normal"];
j_producer_validate__xor_0 -> p_producer_valid [color="#333333", style="solid", arrowhead="normal", label="producer/valid"];
j_producer_validate__xor_0 -> p_producer_invalid [color="#333333", style="solid", arrowhead="normal", label="producer/invalid"];
}
subgraph cluster_buffer {
label="buffer";
style="rounded,dashed";
bgcolor="#FAFAFA";
penwidth=1.5;
p_buffer_slots [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="buffer/slots", fixedsize="true"];
p_buffer_pending [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="buffer/pending", fixedsize="true"];
p_buffer_overflow [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="buffer/overflow", fixedsize="true"];
t_buffer_overflow [label="buffer/overflow [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_buffer_serve [label="buffer/serve [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
j_buffer_serve__and_0 [label="✚", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
t_buffer_overflow -> p_buffer_overflow [color="#333333", style="solid", arrowhead="normal"];
p_buffer_slots -> t_buffer_overflow [color="#dc3545", style="solid", arrowhead="odot"];
p_buffer_pending -> t_buffer_serve [color="#333333", style="solid", arrowhead="normal"];
t_buffer_serve -> j_buffer_serve__and_0 [color="#333333", style="solid", arrowhead="normal"];
j_buffer_serve__and_0 -> p_buffer_slots [color="#333333", style="solid", arrowhead="normal"];
}
p_CustomerInput [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="CustomerInput", fixedsize="true"];
p_GuardInput [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="GuardInput", fixedsize="true"];
p_IntentInput [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="IntentInput", fixedsize="true"];
p_AssistantInput [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="AssistantInput", fixedsize="true"];
p_RequestTimestamp [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="RequestTimestamp", fixedsize="true"];
p_Cache [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="Cache", fixedsize="true"];
p_Ok [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="Ok", fixedsize="true"];
p_Fail [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="Fail", fixedsize="true"];
p_Conversation [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="Conversation", fixedsize="true"];
p_Tmp [label="", shape="circle", style="filled", fillcolor="#d4edda", color="#28a745", penwidth=2, width=0.35, xlabel="Tmp", fixedsize="true"];
p_Success [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="Success", fixedsize="true"];
p_Error [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="Error", fixedsize="true"];
p_SideA [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="SideA", fixedsize="true"];
p_SideB [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="SideB", fixedsize="true"];
p_OptX [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="OptX", fixedsize="true"];
p_OptY [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="OptY", fixedsize="true"];
p_OptZ [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="OptZ", fixedsize="true"];
p_OptW [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="OptW", fixedsize="true"];
p_OnlyOut [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="OnlyOut", fixedsize="true"];
p_ResponseSent [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="ResponseSent", fixedsize="true"];
p_RetryQueue [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="RetryQueue", fixedsize="true"];
p_MessageFinalized [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="MessageFinalized", fixedsize="true"];
p_SearchInProgress [label="", shape="doublecircle", style="filled", fillcolor="#cce5ff", color="#004085", penwidth=2, width=0.35, xlabel="SearchInProgress", fixedsize="true"];
p_Events [label="", shape="circle", style="filled,dashed", fillcolor="#f8d7da", color="#721c24", penwidth=2, width=0.35, xlabel="Events", fixedsize="true"];
p_Intake [label="", shape="circle", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1.5, width=0.35, xlabel="Intake", fixedsize="true"];
p_ProducerTrigger [label="", shape="circle", style="filled", fillcolor="#d4edda", color="#28a745", penwidth=2, width=0.35, xlabel="ProducerTrigger", fixedsize="true"];
t_ForkInput [label="ForkInput [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_RefreshCache [label="RefreshCache [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Try [label="Try [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Validate [label="Validate [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Parallel [label="Parallel [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Nested [label="Nested [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Collapse [label="Collapse [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Slow [label="Slow [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Finalize [label="Finalize [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_DrainEvents [label="DrainEvents [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_Flush [label="Flush [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_sync [label="sync [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
t_sync [label="sync [0, ∞]ms", shape="box", style="filled", fillcolor="#fff3cd", color="#856404", penwidth=1, height=0.4, width=0.8];
j_ForkInput__and_0 [label="✚", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Try__xor_0 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Validate__xor_0 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Parallel__and_0 [label="✚", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Nested__and_0 [label="✚", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Nested__xor_1 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Nested__xor_2 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
j_Slow__xor_0 [label="✕", shape="diamond", style="filled", fillcolor="#FFFFFF", color="#333333", penwidth=1, height=0.3, width=0.3, fixedsize="true", fontsize=14];
p_CustomerInput -> t_ForkInput [color="#333333", style="solid", arrowhead="normal"];
t_ForkInput -> j_ForkInput__and_0 [color="#333333", style="solid", arrowhead="normal"];
j_ForkInput__and_0 -> p_GuardInput [color="#333333", style="solid", arrowhead="normal"];
j_ForkInput__and_0 -> p_IntentInput [color="#333333", style="solid", arrowhead="normal"];
j_ForkInput__and_0 -> p_AssistantInput [color="#333333", style="solid", arrowhead="normal"];
j_ForkInput__and_0 -> p_RequestTimestamp [color="#333333", style="solid", arrowhead="normal"];
p_GuardInput -> t_RefreshCache [color="#333333", style="solid", arrowhead="normal"];
t_RefreshCache -> p_Cache [color="#fd7e14", style="bold", arrowhead="normal", label="reset+out", penwidth=2];
p_IntentInput -> t_Try [color="#333333", style="solid", arrowhead="normal"];
t_Try -> j_Try__xor_0 [color="#333333", style="solid", arrowhead="normal"];
j_Try__xor_0 -> p_Ok [color="#333333", style="solid", arrowhead="normal", label="Ok"];
j_Try__xor_0 -> p_Fail [color="#fd7e14", style="bold", arrowhead="normal", label="reset+out", penwidth=2];
p_Conversation -> t_Try [color="#6c757d", style="dashed", arrowhead="normal", label="read"];
t_Try -> p_Tmp [color="#fd7e14", style="bold", arrowhead="normal", label="reset", penwidth=2];
p_Ok -> t_Validate [color="#333333", style="solid", arrowhead="normal"];
t_Validate -> j_Validate__xor_0 [color="#333333", style="solid", arrowhead="normal"];
j_Validate__xor_0 -> p_Success [color="#333333", style="solid", arrowhead="normal", label="Success"];
j_Validate__xor_0 -> p_Error [color="#333333", style="solid", arrowhead="normal", label="Error"];
p_Success -> t_Parallel [color="#333333", style="solid", arrowhead="normal"];
t_Parallel -> j_Parallel__and_0 [color="#333333", style="solid", arrowhead="normal"];
j_Parallel__and_0 -> p_SideA [color="#333333", style="solid", arrowhead="normal"];
j_Parallel__and_0 -> p_SideB [color="#333333", style="solid", arrowhead="normal"];
p_AssistantInput -> t_Nested [color="#333333", style="solid", arrowhead="normal"];
t_Nested -> j_Nested__and_0 [color="#333333", style="solid", arrowhead="normal"];
j_Nested__and_0 -> j_Nested__xor_1 [color="#333333", style="solid", arrowhead="normal"];
j_Nested__xor_1 -> p_OptX [color="#333333", style="solid", arrowhead="normal", label="OptX"];
j_Nested__xor_1 -> p_OptY [color="#333333", style="solid", arrowhead="normal", label="OptY"];
j_Nested__and_0 -> j_Nested__xor_2 [color="#333333", style="solid", arrowhead="normal"];
j_Nested__xor_2 -> p_OptZ [color="#333333", style="solid", arrowhead="normal", label="OptZ"];
j_Nested__xor_2 -> p_OptW [color="#333333", style="solid", arrowhead="normal", label="OptW"];
p_Error -> t_Collapse [color="#333333", style="solid", arrowhead="normal"];
t_Collapse -> p_OnlyOut [color="#333333", style="solid", arrowhead="normal"];
p_SideA -> t_Slow [color="#333333", style="solid", arrowhead="normal"];
t_Slow -> j_Slow__xor_0 [color="#333333", style="solid", arrowhead="normal"];
j_Slow__xor_0 -> p_ResponseSent [color="#333333", style="solid", arrowhead="normal", label="ResponseSent"];
j_Slow__xor_0 -> p_RetryQueue [color="#333333", style="dashed", arrowhead="normal", label="⏱5000ms ⟵SideA"];
p_SideB -> t_Finalize [color="#333333", style="solid", arrowhead="normal", label="≥1"];
t_Finalize -> p_MessageFinalized [color="#333333", style="solid", arrowhead="normal"];
p_SearchInProgress -> t_Finalize [color="#dc3545", style="solid", arrowhead="odot"];
p_RequestTimestamp -> t_Finalize [color="#6c757d", style="dashed", arrowhead="normal", label="read"];
p_Events -> t_DrainEvents [color="#333333", style="solid", arrowhead="normal", label="×3"];
t_DrainEvents -> p_Conversation [color="#333333", style="solid", arrowhead="normal"];
p_RetryQueue -> t_Flush [color="#333333", style="solid", arrowhead="normal", label="*"];
t_Flush -> p_SearchInProgress [color="#333333", style="solid", arrowhead="normal"];
p_producer_valid -> t_sync [color="#333333", style="solid", arrowhead="normal"];
t_sync -> p_Intake [color="#333333", style="solid", arrowhead="normal"];
p_ProducerTrigger -> t_producer_prepare [color="#333333", style="solid", arrowhead="normal"];
p_Intake -> t_sync [color="#333333", style="solid", arrowhead="normal"];
p_buffer_slots -> t_sync [color="#333333", style="solid", arrowhead="normal"];
t_sync -> p_buffer_pending [color="#333333", style="solid", arrowhead="normal"];
p_Intake -> t_buffer_overflow [color="#333333", style="solid", arrowhead="normal"];
j_buffer_serve__and_0 -> p_CustomerInput [color="#333333", style="solid", arrowhead="normal"];
}