---
title: "Configure HTTP destinations for change notifications"
description: "Guide to configuring HTTP destinations, TLS, and health checks for Aerospike ESP change notifications."
---

# Configure HTTP destinations for change notifications

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

The `destinations` section configures HTTP destinations where change notifications are sent. It could be the HTTP [XDR Proxy](https://aerospike.com/docs/database/manage/xdr/proxy) or any HTTP [connectors](https://aerospike.com/docs/connectors). If the destinations are located behind a load balancer, then the ESP traffic is load balanced across the destination URLs.

This is a map from a name for the following destination-to-destination configuration.

## Destination

| Option | Required | Default | Description |
| --- | --- | --- | --- |
| urls | yes |  | The list of HTTP URLs for the destination connector or load balancer. |
| protocol | no | HTTP\_2 | HTTP protocol version to use. Valid values are `HTTP_1_1` and `HTTP_2`. |
| compression | no | none | The compression scheme to use. Valid values are `none` and `gzip`. |
| compression-threshold | no | 0 | The threshold for the size of a message after which messages are compressed if compression is enabled. |
| tls | no | JVM default for trusted CAs. | Configures TLS for connecting to the destination. See [TLS](#tls-config) for details |
| max-connections-per-endpoint | no | 1 | Maximum number of connections per destination endpoint. |
| max-request-queued-per-endpoint | no | 32768 | Maximum number of requests queued per destination endpoint. |
| call-timeout | no | 1000 | Total network timeout in milliseconds for a single HTTP request. Includes DNS resolution, connection establishment, request processing, and response processing. |
| connect-timeout | no | 300 | Connect timeout in milliseconds. |
| connection-ttl | no | \-1 | TTL for connections after which they are discarded and new connections are created. TTL of -1 means connections are never discarded. |
| health-check | no |  | Destination health check configuration. See [health check](#health-check) for details. |
| headers | no |  | HTTP header configuration. See [Headers](#headers) for details. |
| http-success-status-codes | no | 200 to 299 inclusive | The set of HTTP status codes indicating a successful response. |

### Health Check

Configures destination URL health checks.

| Option | Required | Default | Description |
| --- | --- | --- | --- |
| healthy-threshold | no | 3 | The number of consecutive health check successes required before considering the instance in the healthy state. |
| interval-seconds | no | 5 | The interval, in seconds, between health checks of an individual destination. |
| call-timeout | no | 1000 | Health check request timeout in milliseconds. |
| target | no |  | Target path for health check HTTP get requests. If target is specified, the health check URL is scheme://host:port/<target>, else the destination URL is used as is. |
| enabled  
since **`2.3.0`** | no | true | Enables or disables health check. |

### Headers

Configures the HTTP headers that are sent with HTTP request for both the record payload POST request and the health check GET requests. The following options are supported:

| Option | Required | Default | Description |
| --- | --- | --- | --- |
| send-metadata | no | false | If set to `true`, the request includes the Base64-encoded Aerospike record digest as the `aerospike-digest` HTTP header, the record’s namespace as the `aerospike-namespace` header, and the record’s set name as the `aerospike-set` header. |
| authority-header-omit-default-port | no | false | If set to true, the HTTP/2 authority pseudo header omits the default port for the http scheme - 80 for http and 443 for https. |
| additional-headers | no | empty | A map of string key-value pairs for any additional headers sent in each HTTP request to the destination URL. |

## TLS Config

The TLS config for a destination contains the following fields:

| Option | Required | Default | Description |
| --- | --- | --- | --- |
| key-store | yes |  | The key store containing the Aerospike client certificate for mutual authentication. See [TLS Store Config](#tls-store-config). |
| trust-store | no | Default java trust store. | The trust store containing trusted CA certificate for Aerospike server certificate. See [TLS Store Config](#tls-store-config). |
| ciphers | no | Default ciphers allowed by the JVM | Allowed list of TLS ciphers that clients can use for secure connections. |
| protocols | no | TLSv1.2 | TLS protocols allowed. |
| cert-refresh-interval-ms | no |  | Specifies interval in milliseconds to check for updates in configured tls files. If empty, certificate refresh will not be applied. |

### TLS Store Config

A TLS key/trust store.

| Option | Required | Default | Description |
| --- | --- | --- | --- |
| store-file | yes |  | The store file |
| store-password-file | yes |  | Read store password from this file. |
| key-password-file | no |  | Read the key password from this file. |
| store-type | no | JKS | The Keystore type. Valid values are JKS, JCEKS, PKCS12, PKCS11, DKS, Windows\_MY, BKS |

## HTTP Success Status Codes Config

The HTTP success status codes is a list of status codes indicating a successful HTTP response. Ranges can be specified with a dash (’-’).

### Example

```yaml
...

http-success-status-codes:

  - 200

  - 202-206

  - 208

  - 410

  - 501
```