@groupby/ai-dev 0.5.10 → 0.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/teams/fhr-neowise/commands/address-pr.md +120 -0
- package/teams/fhr-neowise/commands/ready-pr.md +70 -0
- package/teams/fhr-neowise/commands/review-pr.md +111 -0
- package/teams/fhr-neowise/commands/tdd-implementation.md +86 -0
- package/teams/fhr-neowise/commands/write-plan.md +23 -0
- package/teams/fhr-neowise/commands/write-pr.md +21 -0
- package/teams/fhr-neowise/commands/write-spec.md +25 -0
- package/teams/fhr-neowise/skills/agent-routing/SKILL.md +72 -0
- package/teams/fhr-neowise/skills/code-review/SKILL.md +83 -0
- package/teams/fhr-neowise/skills/code-review/review-template.md +90 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/SKILL.md +94 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/BEST_PRACTICES.md +96 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/architecture.md +434 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/block.md +753 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/c4.md +619 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/classDiagram.md +1186 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-configuration.md +72 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-directives.md +342 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-layouts.md +40 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-math.md +96 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-theming.md +246 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-tidy-tree.md +89 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/cynefin.md +279 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/entityRelationshipDiagram.md +670 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/eventmodeling.md +475 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/examples.md +301 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/flowchart.md +2116 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/gantt.md +725 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/gitgraph.md +2138 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/ishikawa.md +66 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/kanban.md +161 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/mindmap.md +335 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/packet.md +153 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/pie.md +93 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/quadrantChart.md +267 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/radar.md +269 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/railroad.md +337 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/requirementDiagram.md +495 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/sankey.md +415 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/sequenceDiagram.md +1195 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/stateDiagram.md +670 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/timeline.md +571 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/treeView.md +321 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/treemap.md +353 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/userJourney.md +42 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/venn.md +134 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/wardley.md +732 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/xyChart.md +312 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/zenuml.md +474 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/scripts/sync_docs.py +138 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/COMPLEX.template.md +52 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/NON-CODE.template.md +15 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/SIMPLE.template.md +20 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/SKILL.md +102 -0
- package/teams/fhr-neowise/skills/spec-investigation/SKILL.md +139 -0
- package/teams/fhr-neowise/skills/spec-investigation/TEMPLATE.spec.md +74 -0
- package/teams/fhr-neowise/skills/tdd-workflow/SKILL.md +137 -0
- package/teams/fhr-neowise/skills/write-plan/SKILL.md +285 -0
- package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.checklist.json +79 -0
- package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.plan.md +158 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
> **Warning**
|
|
2
|
+
>
|
|
3
|
+
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
4
|
+
>
|
|
5
|
+
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/eventmodeling.md](../../packages/mermaid/src/docs/syntax/eventmodeling.md).
|
|
6
|
+
|
|
7
|
+
# Event Modeling Diagram (v11.15.0+)
|
|
8
|
+
|
|
9
|
+
## Introduction
|
|
10
|
+
|
|
11
|
+
> **Event Modeling** (EM) is a method of describing systems using an example of how information has changed within them over time. Event Modeling specifically omits transient details and looks at what the information flow is and what the user sees at any particular point in time.
|
|
12
|
+
|
|
13
|
+
You can read more at [Event Modeling web page](https://eventmodeling.org/).
|
|
14
|
+
|
|
15
|
+
Event Modeling diagram is composed of a few main entities:
|
|
16
|
+
|
|
17
|
+
- Trigger - UI and Processor
|
|
18
|
+
- Command
|
|
19
|
+
- View / Read Model
|
|
20
|
+
- Event
|
|
21
|
+
|
|
22
|
+
Entities are organized in swimlanes forming a timeline usually based on the following patterns:
|
|
23
|
+
|
|
24
|
+
- State View
|
|
25
|
+
- State Change
|
|
26
|
+
- Translation
|
|
27
|
+
- Automation
|
|
28
|
+
|
|
29
|
+
You can find more details in the [cheat sheet](https://eventmodeling.org/posts/event-modeling-cheatsheet/).
|
|
30
|
+
|
|
31
|
+
The purpose of the Domain Specific Language (DSL) supporting the drawing of the Event Modeling diagram is the rapid creation. Relations among the entities are inferred by default, so the distraction while you design is limited. Further detail to the entities can be added gradually.
|
|
32
|
+
|
|
33
|
+
The grammar for the DSL is also maintained in a [separate project](https://github.com/lgazo/event-modeling-dsl) with the intention to provide also different types of output, VS Code (and potentially other) IDEs, etc.
|
|
34
|
+
|
|
35
|
+
## Basic Syntax
|
|
36
|
+
|
|
37
|
+
The DSL supports two types of syntaxes - compact and relaxed one. Both will be mentioned in the examples and both can be used interchangeably.
|
|
38
|
+
|
|
39
|
+
### Timeline
|
|
40
|
+
|
|
41
|
+
The timeline is the key part of the diagram and it is composed of **Time Frame** definitions. Speedy Time Frame typing is the key of the compact notation. For compact notation you type the `tf` token. For the relaxed notation you type `timeframe` token.
|
|
42
|
+
|
|
43
|
+
```md
|
|
44
|
+
eventmodeling
|
|
45
|
+
|
|
46
|
+
tf 01 ui CartUI
|
|
47
|
+
tf 02 cmd AddItem
|
|
48
|
+
tf 03 evt ItemAdded
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
rendering to
|
|
52
|
+
|
|
53
|
+
```mermaid-example
|
|
54
|
+
eventmodeling
|
|
55
|
+
|
|
56
|
+
tf 01 ui CartUI
|
|
57
|
+
tf 02 cmd AddItem
|
|
58
|
+
tf 03 evt ItemAdded
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
```mermaid
|
|
62
|
+
eventmodeling
|
|
63
|
+
|
|
64
|
+
tf 01 ui CartUI
|
|
65
|
+
tf 02 cmd AddItem
|
|
66
|
+
tf 03 evt ItemAdded
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Each Time Frame is referenced by a **unique number** in order to distinguish one from another and also to be able to reference it when needed. Depending on the complexity of the diagram it should be enough to have just two digit number or more. Imagine you are typing a BASIC program on your ZX Spectrum always starting with a two digit number, but the order of the numbers does not matter, just the uniqueness in the whole timeline.
|
|
70
|
+
|
|
71
|
+
The Time Frame also contains an **Entity Identifier**, e.g. in case of `01` Time Frame it is `CartUI`. One Entity Identifier can be used multiple times in the timeline for example when you want to express invocations of the same event in different points in time.
|
|
72
|
+
|
|
73
|
+
Relaxed notation would look like this:
|
|
74
|
+
|
|
75
|
+
```md
|
|
76
|
+
eventmodeling
|
|
77
|
+
|
|
78
|
+
timeframe 01 ui CartUI
|
|
79
|
+
timeframe 02 command AddItem
|
|
80
|
+
timeframe 03 event ItemAdded
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Inline data
|
|
84
|
+
|
|
85
|
+
It is possible to provide data examples for individual Time Frames. An Inline Data is wrapped in curly brackets on the same line as the Time Frame.
|
|
86
|
+
|
|
87
|
+
Compact version:
|
|
88
|
+
|
|
89
|
+
```mermaid-example
|
|
90
|
+
eventmodeling
|
|
91
|
+
|
|
92
|
+
tf 01 ui CartUI
|
|
93
|
+
tf 02 cmd AddItem { description: string }
|
|
94
|
+
tf 03 evt ItemAdded { description: string }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```mermaid
|
|
98
|
+
eventmodeling
|
|
99
|
+
|
|
100
|
+
tf 01 ui CartUI
|
|
101
|
+
tf 02 cmd AddItem { description: string }
|
|
102
|
+
tf 03 evt ItemAdded { description: string }
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Relaxed version:
|
|
106
|
+
|
|
107
|
+
```mermaid-example
|
|
108
|
+
eventmodeling
|
|
109
|
+
|
|
110
|
+
timeframe 01 ui CartUI
|
|
111
|
+
timeframe 02 command AddItem { description: string }
|
|
112
|
+
timeframe 03 event ItemAdded { description: string }
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```mermaid
|
|
116
|
+
eventmodeling
|
|
117
|
+
|
|
118
|
+
timeframe 01 ui CartUI
|
|
119
|
+
timeframe 02 command AddItem { description: string }
|
|
120
|
+
timeframe 03 event ItemAdded { description: string }
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Data block
|
|
124
|
+
|
|
125
|
+
If you need to provide more complex data description, you can define the **Data Block** separately. Data Block is referenced from a Time Frame by providing the identifier inside of double-square brackets `[[identifier]]`, similar to wiki links convention in Markdown.
|
|
126
|
+
|
|
127
|
+
In case the same entity is repeated you need to uniquely identify the data blocks, therefore the Data Block identifier is suffixed with a number.
|
|
128
|
+
|
|
129
|
+
Compact version:
|
|
130
|
+
|
|
131
|
+
```mermaid-example
|
|
132
|
+
eventmodeling
|
|
133
|
+
|
|
134
|
+
tf 01 ui CartUI
|
|
135
|
+
tf 02 cmd AddItem [[AddItem01]]
|
|
136
|
+
tf 03 evt ItemAdded [[ItemAdded]]
|
|
137
|
+
tf 04 cmd AddItem [[AddItem02]]
|
|
138
|
+
tf 05 evt ItemAdded [[ItemAdded]]
|
|
139
|
+
|
|
140
|
+
data AddItem01 {
|
|
141
|
+
description: 'john'
|
|
142
|
+
image: 'avatar_john'
|
|
143
|
+
price: 20.4
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
data AddItem02 {
|
|
147
|
+
description: 'jack'
|
|
148
|
+
image: 'avatar_jack'
|
|
149
|
+
price: 12.5
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
data ItemAdded {
|
|
153
|
+
description: string
|
|
154
|
+
image: string
|
|
155
|
+
price: number
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
```mermaid
|
|
160
|
+
eventmodeling
|
|
161
|
+
|
|
162
|
+
tf 01 ui CartUI
|
|
163
|
+
tf 02 cmd AddItem [[AddItem01]]
|
|
164
|
+
tf 03 evt ItemAdded [[ItemAdded]]
|
|
165
|
+
tf 04 cmd AddItem [[AddItem02]]
|
|
166
|
+
tf 05 evt ItemAdded [[ItemAdded]]
|
|
167
|
+
|
|
168
|
+
data AddItem01 {
|
|
169
|
+
description: 'john'
|
|
170
|
+
image: 'avatar_john'
|
|
171
|
+
price: 20.4
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
data AddItem02 {
|
|
175
|
+
description: 'jack'
|
|
176
|
+
image: 'avatar_jack'
|
|
177
|
+
price: 12.5
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
data ItemAdded {
|
|
181
|
+
description: string
|
|
182
|
+
image: string
|
|
183
|
+
price: number
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Relaxed version:
|
|
188
|
+
|
|
189
|
+
```mermaid-example
|
|
190
|
+
eventmodeling
|
|
191
|
+
|
|
192
|
+
timeframe 01 ui CartUI
|
|
193
|
+
timeframe 02 command AddItem [[AddItem01]]
|
|
194
|
+
timeframe 03 event ItemAdded [[ItemAdded]]
|
|
195
|
+
timeframe 04 command AddItem [[AddItem02]]
|
|
196
|
+
timeframe 05 event ItemAdded [[ItemAdded]]
|
|
197
|
+
|
|
198
|
+
data AddItem01 {
|
|
199
|
+
description: 'john'
|
|
200
|
+
image: 'avatar_john'
|
|
201
|
+
price: 20.4
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
data AddItem02 {
|
|
205
|
+
description: 'jack'
|
|
206
|
+
image: 'avatar_jack'
|
|
207
|
+
price: 12.5
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
data ItemAdded {
|
|
211
|
+
description: string
|
|
212
|
+
image: string
|
|
213
|
+
price: number
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```mermaid
|
|
218
|
+
eventmodeling
|
|
219
|
+
|
|
220
|
+
timeframe 01 ui CartUI
|
|
221
|
+
timeframe 02 command AddItem [[AddItem01]]
|
|
222
|
+
timeframe 03 event ItemAdded [[ItemAdded]]
|
|
223
|
+
timeframe 04 command AddItem [[AddItem02]]
|
|
224
|
+
timeframe 05 event ItemAdded [[ItemAdded]]
|
|
225
|
+
|
|
226
|
+
data AddItem01 {
|
|
227
|
+
description: 'john'
|
|
228
|
+
image: 'avatar_john'
|
|
229
|
+
price: 20.4
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
data AddItem02 {
|
|
233
|
+
description: 'jack'
|
|
234
|
+
image: 'avatar_jack'
|
|
235
|
+
price: 12.5
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
data ItemAdded {
|
|
239
|
+
description: string
|
|
240
|
+
image: string
|
|
241
|
+
price: number
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Resetting the flow
|
|
246
|
+
|
|
247
|
+
By default the diagram builds the relations based on the inference. But modeling a more complex business flow requires to break such inference from time to time. For that you can use a different type of Time Frame called **Reset Frame**. It is represented by a `rf` / `resetframe` token.
|
|
248
|
+
|
|
249
|
+
Compact version:
|
|
250
|
+
|
|
251
|
+
```mermaid-example
|
|
252
|
+
eventmodeling
|
|
253
|
+
|
|
254
|
+
tf 01 ui CartUI
|
|
255
|
+
tf 02 cmd AddItem
|
|
256
|
+
tf 03 evt ItemAdded
|
|
257
|
+
|
|
258
|
+
rf 04 evt External.InventoryChanged
|
|
259
|
+
tf 05 pcr InventoryProcessor
|
|
260
|
+
tf 06 cmd ChangeInventory
|
|
261
|
+
tf 07 evt Cart.InventoryChanged
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
```mermaid
|
|
265
|
+
eventmodeling
|
|
266
|
+
|
|
267
|
+
tf 01 ui CartUI
|
|
268
|
+
tf 02 cmd AddItem
|
|
269
|
+
tf 03 evt ItemAdded
|
|
270
|
+
|
|
271
|
+
rf 04 evt External.InventoryChanged
|
|
272
|
+
tf 05 pcr InventoryProcessor
|
|
273
|
+
tf 06 cmd ChangeInventory
|
|
274
|
+
tf 07 evt Cart.InventoryChanged
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Relaxed version:
|
|
278
|
+
|
|
279
|
+
```mermaid-example
|
|
280
|
+
eventmodeling
|
|
281
|
+
|
|
282
|
+
timeframe 01 ui CartUI
|
|
283
|
+
timeframe 02 command AddItem
|
|
284
|
+
timeframe 03 event ItemAdded
|
|
285
|
+
|
|
286
|
+
resetframe 04 event External.InventoryChanged
|
|
287
|
+
timeframe 05 processor InventoryProcessor
|
|
288
|
+
timeframe 06 command ChangeInventory
|
|
289
|
+
timeframe 07 event Cart.InventoryChanged
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
```mermaid
|
|
293
|
+
eventmodeling
|
|
294
|
+
|
|
295
|
+
timeframe 01 ui CartUI
|
|
296
|
+
timeframe 02 command AddItem
|
|
297
|
+
timeframe 03 event ItemAdded
|
|
298
|
+
|
|
299
|
+
resetframe 04 event External.InventoryChanged
|
|
300
|
+
timeframe 05 processor InventoryProcessor
|
|
301
|
+
timeframe 06 command ChangeInventory
|
|
302
|
+
timeframe 07 event Cart.InventoryChanged
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Multiple relations
|
|
306
|
+
|
|
307
|
+
There are situations where you need to specify multiple relations for an entity. For example when a **Read Model** is built of multiple **Events**. You can use `->>` token for that.
|
|
308
|
+
|
|
309
|
+
```mermaid-example
|
|
310
|
+
eventmodeling
|
|
311
|
+
|
|
312
|
+
rf 02 evt CartCreated
|
|
313
|
+
rf 03 evt ItemAdded
|
|
314
|
+
rf 04 evt ItemRemoved
|
|
315
|
+
rf 05 evt CartCleared
|
|
316
|
+
tf 01 rmo CartUI ->> 02 ->> 03 ->> 04 ->> 05
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
```mermaid
|
|
320
|
+
eventmodeling
|
|
321
|
+
|
|
322
|
+
rf 02 evt CartCreated
|
|
323
|
+
rf 03 evt ItemAdded
|
|
324
|
+
rf 04 evt ItemRemoved
|
|
325
|
+
rf 05 evt CartCleared
|
|
326
|
+
tf 01 rmo CartUI ->> 02 ->> 03 ->> 04 ->> 05
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Event Modeling patterns
|
|
330
|
+
|
|
331
|
+
This chapter briefly summarizes each Event Modeling pattern.
|
|
332
|
+
|
|
333
|
+
### State Change
|
|
334
|
+
|
|
335
|
+
```mermaid-example
|
|
336
|
+
eventmodeling
|
|
337
|
+
|
|
338
|
+
tf 01 ui CartUI
|
|
339
|
+
tf 02 cmd AddItem
|
|
340
|
+
tf 03 evt ItemAdded
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
```mermaid
|
|
344
|
+
eventmodeling
|
|
345
|
+
|
|
346
|
+
tf 01 ui CartUI
|
|
347
|
+
tf 02 cmd AddItem
|
|
348
|
+
tf 03 evt ItemAdded
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### State View
|
|
352
|
+
|
|
353
|
+
```mermaid-example
|
|
354
|
+
eventmodeling
|
|
355
|
+
|
|
356
|
+
tf 03 evt ItemAdded
|
|
357
|
+
tf 02 rmo CartItems
|
|
358
|
+
tf 04 ui CartUI
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
```mermaid
|
|
362
|
+
eventmodeling
|
|
363
|
+
|
|
364
|
+
tf 03 evt ItemAdded
|
|
365
|
+
tf 02 rmo CartItems
|
|
366
|
+
tf 04 ui CartUI
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Translation
|
|
370
|
+
|
|
371
|
+
```mermaid-example
|
|
372
|
+
eventmodeling
|
|
373
|
+
|
|
374
|
+
tf 03 evt External.InventoryChanged
|
|
375
|
+
tf 02 pcr InventoryProcessor
|
|
376
|
+
tf 04 cmd ChangeInventory
|
|
377
|
+
tf 05 evt Cart.InventoryChanged
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
```mermaid
|
|
381
|
+
eventmodeling
|
|
382
|
+
|
|
383
|
+
tf 03 evt External.InventoryChanged
|
|
384
|
+
tf 02 pcr InventoryProcessor
|
|
385
|
+
tf 04 cmd ChangeInventory
|
|
386
|
+
tf 05 evt Cart.InventoryChanged
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Details of the Syntax
|
|
390
|
+
|
|
391
|
+
### Entity types
|
|
392
|
+
|
|
393
|
+
Entity type is determined by the third column in the Time Frame grammar.
|
|
394
|
+
|
|
395
|
+
Compact version:
|
|
396
|
+
|
|
397
|
+
```md
|
|
398
|
+
tf 01 pcr InventoryProcessor
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
Relaxed version:
|
|
402
|
+
|
|
403
|
+
```md
|
|
404
|
+
timeframe 01 processor InventoryProcessor
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Entities are assigned to default swimlanes unless a **Namespace** is specified in the Entity Identifier.
|
|
408
|
+
|
|
409
|
+
There are the following types available:
|
|
410
|
+
|
|
411
|
+
- `ui`: UI - belongs to UI/Automation swimlane
|
|
412
|
+
- `pcr` / `processor`: Processor - belongs to UI/Automation swimlane
|
|
413
|
+
- `cmd` / `command`: Command - belongs to Command/Read Model swimlane
|
|
414
|
+
- `rmo` / `readmodel`: Read Model - belongs to Command/Read Model swimlane
|
|
415
|
+
- `evt` / `event`: Event - belongs to Events swimlane
|
|
416
|
+
|
|
417
|
+
### Swimlanes and Namespaces
|
|
418
|
+
|
|
419
|
+
There are three basic **Swimlanes** inferred from the Entity Type.
|
|
420
|
+
|
|
421
|
+
- UI/Automation
|
|
422
|
+
- Command/Read Model
|
|
423
|
+
- Events
|
|
424
|
+
|
|
425
|
+
As your diagram grows and you explore the depths of a particular software system, you want to categorize your Entities as well. In order to do that, you can use **Namespace** identifier as part of the Entity Identifier.
|
|
426
|
+
|
|
427
|
+
```md
|
|
428
|
+
Inventory.InventoryChanged
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Namespace** is the first part before the `.` of the Entity Identifier. Each combination of the Namespace and Entity type forms new Swimlane. The order how they are specified in the text definition specifies the order of the Swimlanes in the diagram.
|
|
432
|
+
|
|
433
|
+
```mermaid-example
|
|
434
|
+
eventmodeling
|
|
435
|
+
|
|
436
|
+
rf 01 evt Inventory.InventoryChanged
|
|
437
|
+
rf 02 evt External.InventoryChanged
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
```mermaid
|
|
441
|
+
eventmodeling
|
|
442
|
+
|
|
443
|
+
rf 01 evt Inventory.InventoryChanged
|
|
444
|
+
rf 02 evt External.InventoryChanged
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### Data block data types
|
|
448
|
+
|
|
449
|
+
A **Data** is always wrapped in curly brackets. It can be prepended by a data type in backticks. The pattern applies for **Inline Data** as well as for **Data Block**.
|
|
450
|
+
|
|
451
|
+
```md
|
|
452
|
+
tf 01 rmo UserAdded `json`{ "name": "foo" }
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
or for Data Block
|
|
456
|
+
|
|
457
|
+
```md
|
|
458
|
+
data UserAdded01 `json`{
|
|
459
|
+
"name": "foo"
|
|
460
|
+
}
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
> **Warning**
|
|
464
|
+
> There is no special treatment in the diagram renderer at the moment for a specific data type.
|
|
465
|
+
|
|
466
|
+
Supported types are:
|
|
467
|
+
|
|
468
|
+
- `json`
|
|
469
|
+
- `jsobj`
|
|
470
|
+
- `figma`
|
|
471
|
+
- `salt`
|
|
472
|
+
- `uri`
|
|
473
|
+
- `md`
|
|
474
|
+
- `html`
|
|
475
|
+
- `text`
|