Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change: Implement plugin architecture for encoders/transforms/splitters #104

Open
5 tasks
mathysgrapotte opened this issue Feb 19, 2025 · 0 comments
Open
5 tasks

Comments

@mathysgrapotte
Copy link
Owner

mathysgrapotte commented Feb 19, 2025

Is your change request related to a problem? Please describe.

The current implementation has tightly coupled components:

  1. Encoders/Transforms/Splitters are hardcoded in YAML configs using class names
  2. No standard way to add new encoder/transform types
  3. Configuration validation doesn't leverage discoverable components
  4. Third-party extensions require modifying core code

Describe the solution you'd like

Implement a plugin architecture:

  • Small focused components: Each encoder/transform/splitter is independent
  • Text-based interfaces: YAML configs use logical names instead of class paths
  • Extensible through composition: New plugins add capabilities without core changes

Implementation Plan

  1. change: Create core registry infrastructure #105 - Core Registry System
  2. change: Implement encoder registry system #106 - Encoder Registry Implementation
  3. change: Implement splitters registry system #107 - Transform Registry Implementation
  4. change: Implement transforms registry system #108 - Splitter Registry Implementation
  5. change: Update YAML config format for registry system #109 - YAML Configuration Updates

Additional context

This is a breaking change requiring updates to existing YAML configs.

@mathysgrapotte mathysgrapotte moved this to Todo - long issues in Stimulus v1.0 Feb 19, 2025
@mathysgrapotte mathysgrapotte moved this from Todo - long issues to Master issues in Stimulus v1.0 Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Master issues
Development

No branches or pull requests

1 participant