Extensions is an experimental feature. Therefore, we do not recommend the use of extensions in a production environment. For updates on the progress of extensions, or if you want leave feedback that could help improve the feature, refer to the issue on GitHub.
Until extensions were introduced, plugins were the only way to extend OpenSearch functionality. However, plugins have significant shortcomings: they require frequent updates to stay up to date with OpenSearch core, they pose a security risk because they run in the same process as OpenSearch, and updating or installing them requires a full cluster restart. Moreover, plugins can fatally impact the cluster in the event of failure.
Extensions provide an easier, more secure way to customize OpenSearch. Extensions support all plugin functionality and let you build additional modular features for OpenSearch. The OpenSearch SDK for Java provides the library of classes and interfaces that you can use to develop extensions. Extensions are decoupled from OpenSearch core and do not need frequent updates. Additionally, they can run in a separate process or on another node and can be installed while a cluster is running.
Use the following documentation to get started with extensions:
Step 1: Learn the basics
Read the design documentation to learn about extension architecture and how extensions work.
Step 2: Try it out
Try running the sample Hello World extension by following detailed steps in the Getting started section of the Developer Guide.
Step 3: Create your own extension
Develop a custom create, read, update, delete (CRUD) extension by following the instructions in this tutorial.
Step 4: Learn how to deploy your extension
For instructions on building, testing, and running an extension, see the Developing your own extension section of the Developer Guide.
For tips on migrating an existing plugin to an extension, see the plugin migration documentation.