diff --git a/STYLE.md b/STYLE.md index 4e3e70818f708..51b454afe8914 100644 --- a/STYLE.md +++ b/STYLE.md @@ -327,3 +327,22 @@ you'll need to use an asynchronous-specific synchronization primitives, namely t itself. The documentation on `tokio`'s own [`Mutex`](https://docs.rs/tokio/latest/tokio/sync/struct.Mutex.html), for example, calls out the specifics of when and where you might need to use it vs the one from `std::sync`. + + +## New Configuration Fields vs CLI flags + +Vector makes the distinction between configuration items that are essential to understand data +pipelines and runtime flags that determine the details of the runtime behavior. The main configuration +generally lives in a file in the current directory or in `/etc/vector`. + +Examples of main configuration fields are source, transformation, and sink declaration, as well as +information about where any disk buffers should be persisted. + +For configuration items that purely inform details of Vector's runtime behavior, CLI flags without +corresponding configuration fields should be used. + +An example of a runtime flag is +`vector run --no-graceful-shutdown-limit`, which tells Vector to ignore SIGINTs and to continue running +as normal until a SIGKILL is received. In this case, as the configuration describes the desired runtime +behavior in a specific environment and not to the underlying data pipeline, no corresponding field in +the configuration file should exist.