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
We need a way to load event-bus consumer implementations based on configuration, so that IDAs aren't hardcoded to use one particular implementation. (See #87 for the producer side.)
There are a couple of ways we might go about this:
A. Define an abstract class in openedx-events, and load an implementing class based on Django settings, the same way we do with producers.
See commit message on main...timmc/load-consumer for open questions about what the interface might look like. (We also need to consider whether event-replay functionality would be included in this API.)
openedx-events could then be registered as a Django app, and offer a "consume events" management command that reads configuration and loads the appropriate implementation.
B. Just have every implementation make its own management command, requiring all of them to be registered in INSTALLED_APPS.
This moves the hardcoding from the IDA source code into the infrastructure source code.
Might be OK temporarily, but at some point we probably want community Helm charts or something and will not be happy with that hardcoding.
C. Are there other options? Should we support an entry point that isn't a management command?
The text was updated successfully, but these errors were encountered:
We need a way to load event-bus consumer implementations based on configuration, so that IDAs aren't hardcoded to use one particular implementation. (See #87 for the producer side.)
There are a couple of ways we might go about this:
INSTALLED_APPS
.The text was updated successfully, but these errors were encountered: