@@ -11,26 +11,30 @@ experience -- the purpose of this document.
11
11
12
12
<!-- MarkdownTOC autolink="true" style="ordered" indent=" " -->
13
13
14
- 1 . [ Principles] ( #principles )
15
- 1 . [ Don't please everyone] ( #dont-please-everyone )
16
- 1 . [ Be opinionated & reduce decisions] ( #be-opinionated--reduce-decisions )
17
- 1 . [ Build momentum with consistency] ( #build-momentum-with-consistency )
18
- 1 . [ Goals] ( #goals )
19
- 1 . [ Performance] ( #performance )
20
- 1 . [ Safety] ( #safety )
21
- 1 . [ Guidelines] ( #guidelines )
22
- 1 . [ Defaults] ( #defaults )
23
- 1 . [ Don't lose data] ( #dont-lose-data )
24
- 1 . [ Logical boundaries] ( #logical-boundaries )
25
- 1 . [ Source & sink boundaries] ( #source--sink-boundaries )
26
- 1 . [ Transform boundaries] ( #transform-boundaries )
27
- 1 . [ Adherence] ( #adherence )
28
- 1 . [ Roles] ( #roles )
29
- 1 . [ Contributors] ( #contributors )
30
- 1 . [ User experience committee] ( #user-experience-committee )
31
- 1 . [ Responsibilities] ( #responsibilities )
32
- 1 . [ Contributors] ( #contributors-1 )
33
- 1 . [ User experience committee] ( #user-experience-committee-1 )
14
+ 1 . [ User Experience Design] ( #user-experience-design )
15
+ 1 . [ Principles] ( #principles )
16
+ 1 . [ Don't please everyone] ( #dont-please-everyone )
17
+ 2 . [ Be opinionated & reduce decisions] ( #be-opinionated--reduce-decisions )
18
+ 3 . [ Build momentum with consistency] ( #build-momentum-with-consistency )
19
+ 2 . [ Goals] ( #goals )
20
+ 1 . [ Performance] ( #performance )
21
+ 2 . [ Safety] ( #safety )
22
+ 3 . [ Guidelines] ( #guidelines )
23
+ 1 . [ Data model] ( #data-model )
24
+ 1 . [ Log schemas should be fluid] ( #log-schemas-should-be-fluid )
25
+ 2 . [ Defaults] ( #defaults )
26
+ 1 . [ Don't lose data] ( #dont-lose-data )
27
+ 3 . [ Logical boundaries] ( #logical-boundaries )
28
+ 1 . [ Source & sink boundaries] ( #source--sink-boundaries )
29
+ 2 . [ Transform boundaries] ( #transform-boundaries )
30
+ 4 . [ Upfront configuration] ( #upfront-configuration )
31
+ 4 . [ Adherence] ( #adherence )
32
+ 1 . [ Roles] ( #roles )
33
+ 1 . [ Contributors] ( #contributors )
34
+ 2 . [ User experience committee] ( #user-experience-committee )
35
+ 2 . [ Responsibilities] ( #responsibilities )
36
+ 1 . [ Contributors] ( #contributors-1 )
37
+ 2 . [ User experience committee] ( #user-experience-committee-1 )
34
38
35
39
<!-- /MarkdownTOC -->
36
40
@@ -50,9 +54,9 @@ _observability data pipeline_ and we strive to be the best in this domain.
50
54
51
55
Examples:
52
56
53
- * Avoiding analytics specific use cases.
54
- * Leaning into tools like Kafka instead of trying to completely replace them.
55
- * Building a data processing DSL optimized our [ design goals] ( #goals ) as opposed
57
+ - Avoiding analytics specific use cases.
58
+ - Leaning into tools like Kafka instead of trying to completely replace them.
59
+ - Building a data processing DSL optimized our [ design goals] ( #goals ) as opposed
56
60
to offering multiple languages for processing (i.e., javascript)
57
61
58
62
### Be opinionated & reduce decisions
@@ -66,9 +70,9 @@ purpose and not leave them as creative exercises for the user.
66
70
67
71
Examples:
68
72
69
- * Vector's ` pipelines ` transform as a solution to team collaboration as opposed
73
+ - Vector's ` pipelines ` transform as a solution to team collaboration as opposed
70
74
to generic config files.
71
- * Vector's metric data model as a solution for metrics interoperability as
75
+ - Vector's metric data model as a solution for metrics interoperability as
72
76
opposed to specifically structured log lines.
73
77
74
78
### Build momentum with consistency
@@ -84,8 +88,8 @@ error handling, since this often results in data loss.
84
88
85
89
Examples:
86
90
87
- * Using the same ` codec ` option name in both sources and sinks that support it.
88
- * Defaulting to applying back pressure regardless of the component or topology.
91
+ - Using the same ` codec ` option name in both sources and sinks that support it.
92
+ - Defaulting to applying back pressure regardless of the component or topology.
89
93
90
94
## Goals
91
95
@@ -104,11 +108,11 @@ this area.
104
108
105
109
Examples:
106
110
107
- * Choosing a fast, yet more difficult, language, like Rust, to build
111
+ - Choosing a fast, yet more difficult, language, like Rust, to build
108
112
Vector in.
109
- * Investing into performance-related infrastructure for regression control and
113
+ - Investing into performance-related infrastructure for regression control and
110
114
analysis.
111
- * Creating ARC to eliminate a common real-world performance problem.
115
+ - Creating ARC to eliminate a common real-world performance problem.
112
116
113
117
### Safety
114
118
@@ -120,8 +124,8 @@ is Vector's secondary design goal.
120
124
121
125
Examples:
122
126
123
- * Creating a type-safe data processing DSL designed for performance.
124
- * Implementing end-to-end type safety for Vector's configuration.
127
+ - Creating a type-safe data processing DSL designed for performance.
128
+ - Implementing end-to-end type safety for Vector's configuration.
125
129
126
130
## Guidelines
127
131
@@ -159,8 +163,8 @@ an opt-in choice by the user.
159
163
160
164
Examples:
161
165
162
- * Choose back pressure over shedding load
163
- * Retry failed requests in sinks until the service recovers
166
+ - Choose back pressure over shedding load
167
+ - Retry failed requests in sinks until the service recovers
164
168
165
169
### Logical boundaries
166
170
@@ -179,11 +183,11 @@ composability.
179
183
180
184
Examples:
181
185
182
- * A ` syslog ` source as opposed to a ` syslogng ` source since it aligns with the
186
+ - A ` syslog ` source as opposed to a ` syslogng ` source since it aligns with the
183
187
Syslog protocol.
184
- * A ` datadog_agent ` source as opposed to a ` datadog_api ` source since it aligns
188
+ - A ` datadog_agent ` source as opposed to a ` datadog_api ` source since it aligns
185
189
on intent and reduces scope.
186
- * Again, a ` syslog ` source _ in addition_ to a ` socket ` source with the ` codec `
190
+ - Again, a ` syslog ` source _ in addition_ to a ` socket ` source with the ` codec `
187
191
option set to ` syslog ` since it is more specific and discoverable.
188
192
189
193
#### Transform boundaries
@@ -197,11 +201,25 @@ both.
197
201
198
202
Examples:
199
203
200
- * A ` remap ` transform as opposed to multiple ` parse_json ` , ` parse_syslog ` , etc
204
+ - A ` remap ` transform as opposed to multiple ` parse_json ` , ` parse_syslog ` , etc
201
205
transforms.
202
- * A ` filter ` transform as opposed to a ` filter_regex ` , ` filter_datadog_search ` ,
206
+ - A ` filter ` transform as opposed to a ` filter_regex ` , ` filter_datadog_search ` ,
203
207
etc transforms.
204
208
209
+ ### Upfront configuration
210
+
211
+ Vector should never require manual intervention of Vector to remedy normal
212
+ processing failures during; instead Vector should require any necessary
213
+ configuration to handle these failures a priori.
214
+
215
+ For example, rather than requiring users to intervene to unblock processing
216
+ whenever events fail to be sent to sinks by manually skipping them, instead
217
+ Vector should let users define dead-letter queues to send events to when the
218
+ primary sink rejects events.
219
+
220
+ Users may need to intervene to update invalid configuration, for example in the
221
+ case of rotating invalid API keys.
222
+
205
223
## Adherence
206
224
207
225
### Roles
@@ -226,22 +244,22 @@ experience.
226
244
As a Vector contributor you are responsible for coupling the following non-code
227
245
changes with your code changes:
228
246
229
- * Reference docs changes located in the [ ` /website/cue ` folder] ( ../website/cue )
247
+ - Reference docs changes located in the [ ` /website/cue ` folder] ( ../website/cue )
230
248
(generally configuration changes)
231
- * Existing guide changes located in the [ ` /website/content ` folder] ( ../website/content )
232
- * If relevant, [ highlighting] your change for future release notes
249
+ - Existing guide changes located in the [ ` /website/content ` folder] ( ../website/content )
250
+ - If relevant, [ highlighting] your change for future release notes
233
251
234
252
You are _ not_ responsible for:
235
253
236
- * Writing new guides related to your change
254
+ - Writing new guides related to your change
237
255
238
256
#### User experience committee
239
257
240
258
As a user experience design committee member, you are responsible for:
241
259
242
- * The resulting user experience.
243
- * Reviewing and approving proposed user experience changes in RFCs.
244
- * Reviewing and approving user-facing changes in pull requests.
245
- * Updating and evolving guides to reflect new Vector changes.
260
+ - The resulting user experience.
261
+ - Reviewing and approving proposed user experience changes in RFCs.
262
+ - Reviewing and approving user-facing changes in pull requests.
263
+ - Updating and evolving guides to reflect new Vector changes.
246
264
247
265
[ Hicks Law ] : https://en.wikipedia.org/wiki/Hick%27s_law
0 commit comments