Skip to main content

Oracle Golden Gate to Kafka Adapter

1. config.toml Explanation

1.1 Example of configs/config.toml

[gravity]
domain = "default"
host = "0.0.0.0"
port = 4222
pingInterval = 10
maxPingsOutstanding = 3
maxReconnects = -1
accessToken = ""
publishBatchSize = 1000
rateLimit = 0

[source]
config = "./settings/sources.json"

1.2 Parameters

ParameterDescription
gravity.domainSets the Gravity domain
gravity.hostSets the Gravity NATS IP address
gravity.portSets the Gravity NATS port
gravity.pingIntervalSets the Gravity ping interval
gravity.maxPingsOutstandingSets the maximum outstanding pings
gravity.maxReconnectsSets the maximum number of reconnections
gravity.accessTokenSets the Gravity access token (for authentication)
gravity.publishBatchSizeSets the batch size for events sent to NATS
gravity.rateLimitSets the maximum rate (per second) for events sent to NATS (0 = no limit)
source.configPath to the source configuration file

INFO

The config.toml settings can also be provided via environment variables. The naming convention is as follows:

GRAVITY_ADAPTER_OGG_[SECTION]_[KEY]

All letters are uppercase, and underscores (_) separate the sections and keys.
Example for gravity.host:

env:
- name: GRAVITY_ADAPTER_OGG_GRAVITY_HOST
value: 192.168.0.1

2. settings.json Explanation

2.1 Example of settings/sources.json

{
"sources": {
"kafka_normal": {
"hosts": [
"192.168.8.227:9092",
"192.168.8.227:9093",
"192.168.8.227:9094"
],
"groupId": "test-group",
"topic": "example.accountevent",
"disabled": false,
"autoOffsetReset": "earliest",
"tables": {
"TEST_OGG.TEST_OGG": {
"events": {
"create": "accountCreated",
"update": "accountUpdated",
"delete": "accountDeleted"
}
}
}
}
}
}

2.2 Parameters

ParameterDescription
sources.SOURCE_NAME.disabledWhether to disable this source
sources.SOURCE_NAME.hostsSets the Kafka cluster server IPs and ports
sources.SOURCE_NAME.groupIdSets the Kafka client group ID
sources.SOURCE_NAME.topicSets the Kafka topic to subscribe to
sources.SOURCE_NAME.autoOffsetResetSets the starting point for consuming messages from the topic. Options: earliest or latest.
sources.SOURCE_NAME.sslConfigures TLS settings for secure connections
sources.SOURCE_NAME.ssl.ssl.ca.locationPath to the CA certificate
sources.SOURCE_NAME.ssl.ssl.certificate.locationPath to the client certificate
sources.SOURCE_NAME.ssl.ssl.key.locationPath to the client private key
sources.SOURCE_NAME.saslConfigures SASL authentication settings
sources.SOURCE_NAME.sasl.sasl.mechanismsSets the SASL mechanism. Options: PLAIN or GSSAPI.
sources.SOURCE_NAME.sasl.sasl.usernameSASL username (for PLAIN mechanism)
sources.SOURCE_NAME.sasl.sasl.passwordSASL password (for PLAIN mechanism)
sources.SOURCE_NAME.sasl.sasl.kerberos.service.nameKerberos service name (for GSSAPI mechanism)
sources.SOURCE_NAME.sasl.sasl.kerberos.keytabPath to the Kerberos keytab file
sources.SOURCE_NAME.sasl.sasl.kerberos.principalKerberos principal
sources.SOURCE_NAME.tables.TABLE_NAME.event.createEvent name for record creation
sources.SOURCE_NAME.tables.TABLE_NAME.event.updateEvent name for record updates
sources.SOURCE_NAME.tables.TABLE_NAME.event.deleteEvent name for record deletion

INFO

The settings.json configuration can also be provided via environment variables.
Environment variable format:

env:
- name: GRAVITY_ADAPTER_OGG_SOURCE_SETTINGS
value: |
{
"sources": {
"kafka_normal": {
"hosts": ["192.168.8.227:9092", "192.168.8.227:9093", "192.168.8.227:9094"],
"groupId": "test-group",
"topic": "example.accountevent",
...
}
}
}

3. Build

To build the adapter image, use the following command:

podman buildx build --platform linux/amd64 -t hb.k8sbridge.com/gravity/gravity-adapter-ogg:v0.0.1 -f build/docker/Dockerfile .

4. Log Levels

Log levels can be configured using environment variables.
Available levels: debug, info, error.
Default level: info.

env:
- name: GRAVITY_DEBUG
value: debug