ETL Pipelines integration is available for the Scale plan.

Event Structure

Each event is published with these RabbitMQ message custom headers:

KeyValue
Routing KeyVital event type, e.g., daily.data.activity.created
Content-Typeapplication/json : UTF8 JSON document
Content-Encodinggzip: The blob is compressed by gzip. null/absent: The blob is uncompressed.
DataEncoded JSON blob. This may or may not be compressed — see blob_codec.

Payload smaller than 1KiB would not be compressed. You must check Content-Encoding to identify if decompression of the message payload blob is necessary.

At this time, Vital publishes exclusively JSON blobs (blob_type == json).

Having said that, you are strongly encouraged to check for and drop any events with unrecognized Content-Type and Content-Encoding.

Broker authentication

Vital only supports password authentication at this time.

Vital publishes events with the following settings:

  • Publisher Confirm mode is required
  • Events are published with the Mandatory flag but without the Immediate flag.
  • Events are published with Event Type as the Routing Key.

Please get in touch if these need to be configured differently for your RabbitMQ exchange.

Configuration

Org Management API is available for the Scale plan.

You can manage your RabbitMQ destination through the Org Management API Team ETL Pipeline endpoints.

A basic configuration would look as such:

{
  "team_id": "TEAM_ID",
  "preferences": {
    "enabled": ["rabbitmq"],
    "preferred": "rabbitmq",
  },
  "rabbitmq": {
      "uri": "amqps://...",
      "exchange": "default"
  },
  "push_historical_data": true
}