Skip to content

Commit 7880784

Browse files
authored
docs(dev): Add UX note about not requiring manual intervention (#13607)
* docs(dev): Add UX note about not requiring manual intervention Signed-off-by: Jesse Szwedko <jesse@szwedko.me> * Fix markdown style Signed-off-by: Jesse Szwedko <jesse@szwedko.me>
1 parent da00762 commit 7880784

File tree

1 file changed

+65
-47
lines changed

1 file changed

+65
-47
lines changed

docs/USER_EXPERIENCE_DESIGN.md

+65-47
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,30 @@ experience -- the purpose of this document.
1111

1212
<!-- MarkdownTOC autolink="true" style="ordered" indent=" " -->
1313

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)
3438

3539
<!-- /MarkdownTOC -->
3640

@@ -50,9 +54,9 @@ _observability data pipeline_ and we strive to be the best in this domain.
5054

5155
Examples:
5256

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
5660
to offering multiple languages for processing (i.e., javascript)
5761

5862
### Be opinionated & reduce decisions
@@ -66,9 +70,9 @@ purpose and not leave them as creative exercises for the user.
6670

6771
Examples:
6872

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
7074
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
7276
opposed to specifically structured log lines.
7377

7478
### Build momentum with consistency
@@ -84,8 +88,8 @@ error handling, since this often results in data loss.
8488

8589
Examples:
8690

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.
8993

9094
## Goals
9195

@@ -104,11 +108,11 @@ this area.
104108

105109
Examples:
106110

107-
* Choosing a fast, yet more difficult, language, like Rust, to build
111+
- Choosing a fast, yet more difficult, language, like Rust, to build
108112
Vector in.
109-
* Investing into performance-related infrastructure for regression control and
113+
- Investing into performance-related infrastructure for regression control and
110114
analysis.
111-
* Creating ARC to eliminate a common real-world performance problem.
115+
- Creating ARC to eliminate a common real-world performance problem.
112116

113117
### Safety
114118

@@ -120,8 +124,8 @@ is Vector's secondary design goal.
120124

121125
Examples:
122126

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.
125129

126130
## Guidelines
127131

@@ -159,8 +163,8 @@ an opt-in choice by the user.
159163

160164
Examples:
161165

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
164168

165169
### Logical boundaries
166170

@@ -179,11 +183,11 @@ composability.
179183

180184
Examples:
181185

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
183187
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
185189
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`
187191
option set to `syslog` since it is more specific and discoverable.
188192

189193
#### Transform boundaries
@@ -197,11 +201,25 @@ both.
197201

198202
Examples:
199203

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
201205
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`,
203207
etc transforms.
204208

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+
205223
## Adherence
206224

207225
### Roles
@@ -226,22 +244,22 @@ experience.
226244
As a Vector contributor you are responsible for coupling the following non-code
227245
changes with your code changes:
228246

229-
* Reference docs changes located in the [`/website/cue` folder](../website/cue)
247+
- Reference docs changes located in the [`/website/cue` folder](../website/cue)
230248
(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
233251

234252
You are _not_ responsible for:
235253

236-
* Writing new guides related to your change
254+
- Writing new guides related to your change
237255

238256
#### User experience committee
239257

240258
As a user experience design committee member, you are responsible for:
241259

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.
246264

247265
[Hicks Law]: https://en.wikipedia.org/wiki/Hick%27s_law

0 commit comments

Comments
 (0)