Skip to content

Commit 23c27bc

Browse files
committed
pkg/settings/cresettings: add limits flowchart
1 parent f04b59e commit 23c27bc

File tree

2 files changed

+175
-1
lines changed

2 files changed

+175
-1
lines changed

pkg/settings/cresettings/README.md

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# CRE Settings
2+
3+
```mermaid
4+
---
5+
title: Legend
6+
---
7+
flowchart
8+
bound{{Bound}}
9+
gate[/Gate\]
10+
queue[[Queue]]
11+
rate[\Rate/]
12+
resource([Resource])
13+
time>Time]
14+
15+
bound:::bound
16+
gate:::gate
17+
queue:::queue
18+
rate:::rate
19+
resource:::resource
20+
time:::time
21+
22+
classDef bound stroke:#f00
23+
classDef gate stroke:#0f0
24+
classDef queue stroke:#00f
25+
classDef rate stroke:#ff0
26+
classDef resource stroke:#f0f
27+
classDef time stroke:#0ff
28+
```
29+
30+
31+
```mermaid
32+
---
33+
title: Limits
34+
---
35+
flowchart
36+
subgraph handleRequest[httpServer/websocketServer.handleRequest]
37+
GatewayIncomingPayloadSizeLimit{{GatewayIncomingPayloadSizeLimit}}:::bound
38+
end
39+
%% TODO unused
40+
%% PerOrg.ZeroBalancePruningTimeout
41+
42+
subgraph Store.FetchWorkflowArtifacts
43+
PerWorkflow.WASMConfigSizeLimit{{PerWorkflow.WASMConfigSizeLimit}}:::bound
44+
PerWorkflow.WASMBinarySizeLimit{{PerWorkflow.WASMBinarySizeLimit}}:::bound
45+
PerWorkflow.WASMSecretsSizeLimit{{PerWorkflow.WASMSecretsSizeLimit}}:::bound
46+
end
47+
48+
subgraph host.NewModule
49+
PerWorkflow.WASMCompressedBinarySizeLimit{{PerWorkflow.WASMCompressedBinarySizeLimit}}:::bound
50+
end
51+
52+
subgraph Engine.init
53+
WorkflowExecutionConcurrencyLimit([WorkflowExecutionConcurrencyLimit]):::resource
54+
PerOwner.WorkflowExecutionConcurrencyLimit([PerOwner.WorkflowExecutionConcurrencyLimit]):::resource
55+
56+
WorkflowExecutionConcurrencyLimit-->PerOwner.WorkflowExecutionConcurrencyLimit
57+
end
58+
59+
subgraph Engine.runTriggerSubscriptionPhase
60+
61+
PerWorkflow.TriggerSubscriptionTimeout>PerWorkflow.TriggerSubscriptionTimeout]:::time
62+
PerWorkflow.WASMMemoryLimit{{PerWorkflow.WASMMemoryLimit}}:::bound
63+
PerWorkflow.TriggerRegistrationsTimeout>PerWorkflow.TriggerRegistrationsTimeout]:::time
64+
PerWorkflow.TriggerSubscriptionLimit{{PerWorkflow.TriggerSubscriptionLimit}}:::bound
65+
66+
PerWorkflow.TriggerSubscriptionTimeout-->PerWorkflow.WASMMemoryLimit-->PerWorkflow.TriggerSubscriptionLimit-->PerWorkflow.TriggerRegistrationsTimeout
67+
end
68+
69+
subgraph triggers
70+
direction TB
71+
72+
subgraph PerWorkflow.CRONTrigger
73+
FastestScheduleInterval>FastestScheduleInterval]:::time
74+
end
75+
subgraph PerWorkflow.HTTPTrigger
76+
RateLimit[\RateLimit/]:::rate
77+
end
78+
subgraph PerWorkflow.LogTrigger
79+
direction LR
80+
81+
EventRateLimit[\EventRateLimit/]:::rate
82+
EventSizeLimit{{EventSizeLimit}}:::bound
83+
FilterAddressLimit{{FilterAddressLimit}}:::bound
84+
FilterTopicsPerSlotLimit{{FilterTopicsPerSlotLimit}}:::bound
85+
end
86+
end
87+
88+
subgraph Engine.handleAllTriggerEvents
89+
PerWorkflow.TriggerEventQueueLimit[[PerWorkflow.TriggerEventQueueLimit]]:::queue
90+
PerWorkflow.TriggerEventQueueTimeout>PerWorkflow.TriggerEventQueueTimeout]:::time
91+
PerWorkflow.ExecutionConcurrencyLimit([PerWorkflow.ExecutionConcurrencyLimit]):::resource
92+
93+
PerWorkflow.TriggerEventQueueLimit-->PerWorkflow.TriggerEventQueueTimeout-->PerWorkflow.ExecutionConcurrencyLimit
94+
end
95+
96+
subgraph Engine.startExecution
97+
direction TB
98+
99+
subgraph logs
100+
PerWorkflow.LogLineLimit{{PerWorkflow.LogLineLimit}}:::bound
101+
PerWorkflow.LogEventLimit{{PerWorkflow.LogEventLimit}}:::bound
102+
end
103+
104+
PerWorkflow.ExecutionTimeout>PerWorkflow.ExecutionTimeout]:::time
105+
PerWorkflow.ExecutionResponseLimit{{PerWorkflow.ExecutionResponseLimit}}:::bound
106+
107+
PerWorkflow.ExecutionTimeout-->PerWorkflow.ExecutionResponseLimit
108+
end
109+
110+
subgraph ExecutionHelper.GetSecrets
111+
PerWorkflow.SecretsConcurrencyLimit([PerWorkflow.SecretsConcurrencyLimit]):::resource
112+
end
113+
subgraph ExecutionHelper.CallCapability
114+
PerWorkflow.ChainAllowed[/PerWorkflow.ChainAllowed\]:::gate
115+
PerWorkflow.CapabilityConcurrencyLimit([PerWorkflow.CapabilityConcurrencyLimit]):::resource
116+
PerWorkflow.CapabilityCallTimeout>PerWorkflow.CapabilityCallTimeout]:::time
117+
118+
PerWorkflow.ChainAllowed-->PerWorkflow.CapabilityConcurrencyLimit-->PerWorkflow.CapabilityCallTimeout
119+
end
120+
121+
subgraph actions
122+
direction TB
123+
124+
subgraph PerWorkflow.ChainWrite
125+
direction LR
126+
127+
TargetsLimit{{TargetsLimit}}:::bound
128+
ReportSizeLimit{{ReportSizeLimit}}:::bound
129+
130+
subgraph EVM
131+
GasLimit{{GasLimit}}:::bound
132+
end
133+
end
134+
subgraph PerWorkflow.ChainRead
135+
direction LR
136+
chainread.CallLimit{{CallLimit}}:::bound
137+
LogQueryBlockLimit{{LogQueryBlockLimit}}:::bound
138+
PayloadSizeLimit{{PayloadSizeLimit}}:::bound
139+
end
140+
subgraph PerWorkflow.Consensus
141+
ObservationSizeLimit{{ObservationSizeLimit}}:::bound
142+
consensus.CallLimit{{CallLimit}}:::bound
143+
end
144+
subgraph PerWorkflow.HTTPAction
145+
direction LR
146+
147+
httpaction.CallLimit{{CallLimit}}:::bound
148+
CacheAgeLimit{{CacheAgeLimit}}:::bound
149+
ConnectionTimeout{{ConnectionTimeout}}:::bound
150+
RequestSizeLimit{{RequestSizeLimit}}:::bound
151+
ResponseSizeLimit{{ResponseSizeLimit}}:::bound
152+
end
153+
end
154+
subgraph vault
155+
VaultCiphertextSizeLimit{{VaultCiphertextSizeLimit}}:::bound
156+
VaultIdentifierKeySizeLimit{{VaultIdentifierKeySizeLimit}}:::bound
157+
VaultIdentifierOwnerSizeLimit{{VaultIdentifierOwnerSizeLimit}}:::bound
158+
VaultIdentifierNamespaceSizeLimit{{VaultIdentifierNamespaceSizeLimit}}:::bound
159+
VaultPluginBatchSizeLimit{{VaultPluginBatchSizeLimit}}:::bound
160+
VaultRequestBatchSizeLimit{{VaultRequestBatchSizeLimit}}:::bound
161+
PerOwner.VaultSecretsLimit{{PerOwner.VaultSecretsLimit}}:::bound
162+
end
163+
164+
handleRequest-->Store.FetchWorkflowArtifacts-->host.NewModule-->Engine.init-->Engine.runTriggerSubscriptionPhase-->triggers-->Engine.handleAllTriggerEvents-->Engine.startExecution
165+
Engine.startExecution-->ExecutionHelper.CallCapability-->actions
166+
Engine.startExecution-->PerWorkflow.SecretsConcurrencyLimit-->vault
167+
168+
classDef bound stroke:#f00
169+
classDef gate stroke:#0f0
170+
classDef queue stroke:#00f
171+
classDef rate stroke:#ff0
172+
classDef resource stroke:#f0f
173+
classDef time stroke:#0ff
174+
```

pkg/settings/cresettings/settings.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ var Default = Schema{
152152
}
153153

154154
type Schema struct {
155-
WorkflowLimit Setting[int] `unit:"{workflow}"`
155+
WorkflowLimit Setting[int] `unit:"{workflow}"` // Deprecated
156156
WorkflowExecutionConcurrencyLimit Setting[int] `unit:"{workflow}"`
157157
GatewayIncomingPayloadSizeLimit Setting[config.Size]
158158
GatewayVaultManagementEnabled Setting[bool]

0 commit comments

Comments
 (0)