Elasticsearch agent for Gluesync: target integration

Elasticsearch logo
OpenSearch logo

Core principles

Module elasticsearch is one target agent. OpenSearch is a flavor of that same agent, not a second product, and no source role is planned.

Both products use the same HTTP JSON client. Nothing in the write path switches to a vendor SDK. The flavor only changes the product name and version that the UI and the logs show. Those come from the cluster’s own root endpoint.

Flavor is read from GET /. When version.distribution is opensearch, the agent treats the cluster as OpenSearch. Elasticsearch responses have no distribution field. You can pin the flavor with the Server flavor setting: AUTO (the default), ELASTICSEARCH, or OPENSEARCH.

Change data capture

This agent does not read changes from the cluster. Snapshots and CDC that Gluesync has already captured are written to the target. See Target Elasticsearch.

Platform supported features

Feature Support Notes

Target role

✅

Writes documents with POST /_bulk over the HTTP JSON API.

Source role

❌

Target only. No source is planned.

Snapshots

✅

Initial load uses the same POST /_bulk path as CDC.

CDC

❌

The agent does not capture changes from Elasticsearch or OpenSearch. It applies CDC it receives from Core Hub.

CDC type

N/A

Target only.

Bulk load

❌

allowedBulkMode is NONE. There is no separate Gluesync bulk-loader mode. Snapshots and CDC both go through POST /_bulk.

Database pooling

N/A

One HTTP JSON client. Additional nodes are tried in order when a node is down.

Source persisted internal cache

N/A

Target-only connector.

Target persisted internal cache

N/A

Writes go to the cluster. The confirmed transaction id advances only after the cluster acknowledges the bulk request.

Driver / connector

HTTP JSON

Same client for Elasticsearch and OpenSearch. Not a vendor SDK.

Chains

N/A

Target-only document store.

Truncate operation support (reading)

N/A

Target-only connector.

Truncate operation support (writing)

✅

Default DELETE_BY_QUERY (match_all, conflicts=proceed). SKIP leaves the documents. The index and its mapping always stay.

Security

TLS is off by default. When TLS is on, the agent always validates the server certificate: there is no option to trust it blindly. A cluster with a self-signed certificate is trusted by giving the agent its CA certificate. Authentication defaults to BASIC (username and password). API_KEY and BEARER are also available. disableAuth allows anonymous access. Turn TLS on for any cluster that is not on a private network.

Supported versions

The agent speaks the HTTP JSON API that both products share. A cluster that is neither Elasticsearch nor OpenSearch, but answers that same API, is accepted.

The integration test suite runs against live clusters of both products: Elasticsearch 8.15.5 and OpenSearch 2.17.1, each with security disabled and plain HTTP, fed by a PostgreSQL WAL CDC source. It covers snapshot, insert, update, and delete on each cluster. TLS and the API_KEY and BEARER modes are not part of that suite. This is not a certified compatibility matrix.