New sandbox module in OpenSearch for experimental features

This was originally proposed as part of the github issue Introduce new sandbox module · Issue #570 · opensearch-project/OpenSearch (github.com). I would like to bring this to the attention of wider public to get more opinions on this.

Currently, we use plugins to add new features to OpenSearch. As part of the OpenSearch codebase, we have,

modules - features that are not built in to the server but are installed separately by default.
plugins - core plugins that can be installed optionally.

In addition to those, there are community plugins.

What do you think of adding a new sandbox directory inside OpenSearch for experimental features (something that seems should be built into the server or part of the modules directory but is not deemed worthy at this moment)?

We can provide these features to be used with no guarantees At some point in the future, we can decide whether to promote it or remove it.

1 Like

what’s the difference between this and e.g. using feature flags (either at compile-time (for alpha state features) or config/runtime (for beta features))?

note: when i read “sandbox” initially i was immediately thinking of sandboxing in security terms. i now realise that this wasn’t what was meant - you’re just talking about a single, big feature-toggle (enable the sandbox module or not), right?

I believe the original idea is to provide a space to encourage innovation similar to what Apache Lucene has. The naming might confuse, so we can always change it to something more appropriate. I am not sure at this moment how we should implement this, so it may not be the same as feature flags. Maybe we can only include this in snapshots? @nknize Would you like to chime in here?