You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current implementation uses Feather for dependency injection. This allows a modular architecture and implementation from a conceptual point of view. However, the actual configuration is static and is defined in code.
We could replace Feather with a dependency injection framework that supports external configuration (e.g. Weld). The benefits of this change are:
Dynamic configuration of backend technologies. This would make it easier to swap out implementations (e.g. replace the Pulsar based messaging component with a new Kafka based implementation).
Access to more advanced dependency injection features. Feather (which we use now) is intended as a lightweight implementation and offers limited functionality.
Reduce setup code and duplication of module configuration by introducing sensible defaults and only require explicit configuration when alternative implementations for specific interfaces are used.
The text was updated successfully, but these errors were encountered:
Alternatively, we could also look into plug-in systems such as https://pf4j.org for loading extensions at runtime (we could use a Docker volume as the plug-in folder, so users can mount their own) and then keep on using Feather for injection. E.g. the OblxModule constructs we are using now, could then dynamically be loaded into the Feather environment, instead of being hardcoded (as is the case now).
The current implementation uses Feather for dependency injection. This allows a modular architecture and implementation from a conceptual point of view. However, the actual configuration is static and is defined in code.
We could replace Feather with a dependency injection framework that supports external configuration (e.g. Weld). The benefits of this change are:
The text was updated successfully, but these errors were encountered: