apache / apache/druid

A Proposal about Extension Center

Open
#9,926 3 comments 3 reactions 0 assignees View on GitHub
Area - Extension Discuss Ease of Use
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.