You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by "mmodzelewski (via GitHub)" <gi...@apache.org> on 2025/11/07 12:49:48 UTC

[I] Split connectors (sinks/sources) configuration from the connectors runtime configuration [iggy]

mmodzelewski opened a new issue, #2318:
URL: https://github.com/apache/iggy/issues/2318

   ## Summary
   
   Split connector-specific configurations from the main runtime configuration file into separate per-connector configuration files organized in directories.
   
   ## Description
   
   The connectors runtime currently uses a single monolithic `config.toml` file that contains both runtime settings and all connector configurations. As the number of connectors grows, this approach becomes difficult to manage and maintain. This issue proposes refactoring the configuration structure to improve modularity and scalability.
   
   ## Proposed Changes
   
   ### Current Structure (Problem)
   - Single `config.toml` file containing:
     - Runtime settings (HTTP, Iggy client, state)
     - All sink configurations under `[sinks.<sink_name>]`
     - All source configurations under `[sources.<source_name>]`
   - Large, monolithic configuration file
   - Difficult to manage when multiple connectors are configured
   - Changes to one connector affect the entire configuration file
   
   ### Proposed Structure (Solution)
   - Main `config.toml` should contain only:
     - Runtime settings (HTTP, Iggy client, state)
     - Directory paths pointing to connector configurations:
   ```toml
   [sinks]
   config_dir = "path/to/sinks"
     
   [sources]
   config_dir = "path/to/sources"
   ```
   
   - Individual connector configs in separate files:
     - `sinks/*.toml` - One file per sink connector
     - `sources/*.toml` - One file per source connector
   
   ### Expected Benefits
   
   1. **Modularity**: Each connector will have its own isolated configuration file
   2. **Scalability**: Adding or removing connectors won't require modifying a central config
   3. **Organization**: Cleaner separation between runtime and connector-specific settings
   4. **Flexibility**: Per-connector environment variable support using `IGGY_SINK_<NAME>_*` and `IGGY_SOURCE_<NAME>_*` prefixes
   
   ### Configuration Format
   
   Individual connector files should contain only the connector-specific configuration at the top level, without the parent `[sinks.<name>]` or `[sources.<name>]` prefix. For example, a `sinks/stdout.toml` would look like:
   
   ```toml
   enabled = true
   name = "Stdout sink"
   path = "target/release/libiggy_connector_stdout_sink"
   
   [[streams]]
   stream = "example_stream"
   topics = ["example_topic"]
   # ...
   
   [config]
   print_payload = false
   ```
   
   
   ### Implementation Requirements
   
   - Load configurations dynamically from specified directories at runtime
   - Support graceful handling when `config_dir` is empty or directory doesn't exist
   - Support per-connector environment variable overrides
   - Provide example configurations in the new structure


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Split connectors (sinks/sources) configuration from the connectors runtime configuration [iggy]

Posted by "mmodzelewski (via GitHub)" <gi...@apache.org>.
mmodzelewski closed issue #2318: Split connectors (sinks/sources) configuration from the connectors runtime configuration
URL: https://github.com/apache/iggy/issues/2318


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org