Configuration Flow

The following sections provide an overview of the different ways to define configurations and their order of precedence.

Configuration Flow

Configurations defined in Java (Description Spring Beans) have the lowest precedence and can be overridden by configurations defined in configuration properties.

In addition, loading Topic Configurations can be overridden at request time.

Configuration Flow

Startup Configuration

Configuration Properties

Configuration Properties get converted to Description objects on startup. These Configurations take precedence over Java Configuration.

note

Configuration Properties have some limitations — for example, column calculators and targets cannot be defined in configuration properties, only referenced by name.

Yaml Example

dlc:
  csv:
    local:
      sources:
        source1:
          root-base-dir: /base-dir
    topics:
      topic1:
        file-pattern: glob:trades*.csv

Java Configuration

Description Spring Beans are picked up as configuration.

Java Example
@Bean
public LocalCsvSourceDescription source1() {
    return LocalCsvSourceDescription.builder("source1", "/base-dir").build();
}

@Bean
public CsvTopicDescription topic1(NamedEntityResolverService namedEntityResolver) {
    return CsvTopicDescription.builder("topic1", "glob:trades*.csv")
            .build();
}

Request Time

Loading Topic Overrides

At request time, you can also override the configurations defined at startup for a loading topic by providing configuration properties in your request.

These override some or all of the configurations which belong to a loading topic which was configured at startup.

Example

{
  "operation": "LOAD",
  "csvTopicOverrides": {
    "trades": {
      "filePattern": "glob:alternative_trades*.csv"
    }
  }
}