Skip to main content

Unomi 3 modernized the search tier on both sides of the fork. Elasticsearch moved to the 9.x Java API client (the legacy High Level REST Client path is gone), and UNOMI-828 / #715 made OpenSearch a first-class persistence module with its own distribution packaging.

Elasticsearch 9 and OpenSearch dual backends sharing Unomi PersistenceService SPI

Capabilities

  • Dual distributionsunomi-distribution-elasticsearch and unomi-distribution-opensearch
  • Shared PersistenceService SPI — profiles, events, segments, rules, clustering, and the task scheduler stay on the same application paths
  • Elasticsearch 9 Java API client — HLRC retired; config prefix org.apache.unomi.elasticsearch.*
  • OpenSearch modulepersistence-opensearch; config prefix org.apache.unomi.opensearch.* (addresses, cluster name, credentials, SSL, index prefix)
  • Build flags — Maven / build.sh --use-opensearch; IT matrix can run either engine
  • Docker / envUNOMI_DISTRIBUTION=... selects packaging
  • Migration guide — documented ES → OpenSearch path (index naming, clients, verification)
  • Version pins in 3.1 — Elasticsearch 9.4.x line and OpenSearch 3.7.x companion pins in the reactor

What you choose

  • Elasticsearchpersistence-elasticsearch, config prefix org.apache.unomi.elasticsearch.* (addresses, cluster name, credentials, SSL, index prefix)
  • OpenSearchpersistence-opensearch, config prefix org.apache.unomi.opensearch.* with the same conceptual shape

Both implement the Unomi PersistenceService SPI, so profiles, events, segments, rules, clustering, and the task scheduler stay on the same application paths.

Build and run flavors

# Maven / build.sh
./build.sh
./build.sh --use-opensearch
./build.sh --integration-tests --use-opensearch

# Docker distribution hint
UNOMI_DISTRIBUTION=unomi-distribution-elasticsearch
UNOMI_DISTRIBUTION=unomi-distribution-opensearch

Migrating engines

Moving an existing deployment from Elasticsearch to OpenSearch is documented as its own migration path (index naming, client settings, verification). Start from Migrate from Elasticsearch to OpenSearch in the Unomi 3 manual.

Why it matters

Regulated and cloud-restricted environments often need an OpenSearch footprint; others stay on Elasticsearch. Unomi 3 stops treating that as a fork of the product — it is a packaging and configuration choice on a shared SPI, alongside the platform foundation upgrade (Java 17, Karaf 4.4, persistence clustering).

Manual: ES to OpenSearch Manual: configuration build.sh

← All posts