A Proposal about Extension Center
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
### Motivation
Druid provides lots of useful extensions, but there're some problems here:
1. many of the extensions are provided by community and not are shipped with Druid release.
That means if we want to use `kafka-emitter` for example, we have to download that extension on every node in cluster
2. Most of core extensions are not enabled or loaded by default.
If we need to enable one, people have to modify the configuration file, add that extension to `druid.extensions.loadList` and restart the nodes one by one
3. Extensions are not well known, especially community contributed ones.
These extensions lay in document which are not checked frequently. One day, I checked the doc about extensions, found that there were so many useful extensions there I hadn't known before, like `moving-average-query`, `kafka-emitter`. Had I knew them earlier, I would introduce them in production.
Event at the time I knew that `moving-average-query` exactly matched my need, I still gave up due to the first two problems above
So, I think maybe we could introduce an `Extension Center`, something like AppStore, to allow people discover/download/upgrade/enable/disable extensions dynamically.
### Proposed changes
I haven't come up with a complete solution how to implement it, I know it's not easy to do it, apparently it involves many parts to do it. And the most import one is the UI, the most complex part is how to keep the configurations related to extensions so that they could be taken effect dynamically, and how to dynamic enable extensions.
Before diving into details, maybe we could discuss if its viable
Contributor guide
Research direction
The proposal does not name files, tests, or entry points. Start by assessing the feasibility of an Extension Center across extension discovery, download, upgrade, enablement, UI, and dynamic configuration; the issue does not define a complete solution or a concrete done state.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100