PostgreSQL Listen Ingress Configuration

PostgreSQL Listen data ingestion is available using ingress of type postgres.

Examples Repo

Example PostgreSQL Listen configuration files showcasing all features we will discuss can be found in our Examples Repo .

Settings

The Postgres settings in the configuration file are used to configure data ingestion from a PostgreSQL Notify/Listen channel. Below is a detailed description of each field within the Postgres settings:

Field Required Configurable Description
channel true true Postgres channel name to listen to.
contentType false true The content type of the value, accepted types: csv, json, recon, xml (default plaintext).

Under the hood, Nstream uses a Hikari connection pool to configure and create connections. Any properties that can be set directly on a HikariConfig object can also be passed here as a setting, some common examples:

Field Required Configurable Description
jdbcUrl false true JDBC URL of the Postgres database.
datasource.user false true Username used to obtain connections from Postgres.
datasource.password false true Password used to obtain connections from Postgres.

Message Structure

The message structure of received Postgres notifications is:

{ "channel": ..., "payload": {...} }

Example

The configuration below defines a Postgres Listen ingress where notifications are consumed from the specified Postgres channel and relayed to vehicle agents.

{
  "ingress": {
    "type": "postgres",
    "settings": {
      "jdbcUrl": "jdbc:postgresql://host.docker.internal:5432/mydb",
      "dataSource.user": "postgres",
      "dataSource.password": "postgres",
      "channel": "new-vehicles"
    },
    "relay": {
      "agent": "vehicle",
      "idExtractor": "payload",
    }
  }
}

Nstream is licensed under the Redis Source Available License 2.0 (RSALv2).