Salesforce PubSub API Source Connector — 1.0.0 (archived)

This is archived documentation for version 1.0.0.
For the current version, see Salesforce PubSub API Source Connector.

Type

Source

Class

io.axual.connect.plugins.salesforce.SalesforcePubSubSourceConnector

Target System

Messaging & Streaming (Salesforce Pub/Sub API)

Maintainer

Axual

License

Proprietary (client-only)

Project

Proprietary. Source code is not publicly accessible.

Download

Contact Axual Support to obtain the connector library.

This page documents version 1.0.0. Newer versions should be compatible unless there are breaking changes, but field names or default values may differ. If you notice discrepancies, please contact Axual Support.

Description

The Salesforce PubSub API Source Connector streams events from Salesforce to Kafka topics in real time. It uses the modern gRPC-based Salesforce Pub/Sub API, providing efficient, high-performance ingestion of Change Data Capture (CDC) events, Platform Events, and Real-Time Event Monitoring data. It is a robust alternative to older Streaming API (CometD) based connectors, offering better scalability and a unified eventing interface.

Features

  • Stream real-time events from Salesforce to Kafka

  • Supports multiple Salesforce event types:

    • Change Data Capture (CDC)

    • Platform Events

    • Real-Time Event Monitoring

  • Built on Salesforce Pub/Sub API (gRPC) for high throughput and low latency

  • Converts Salesforce Avro schemas to Kafka Connect schemas, enabling structured converters

  • Supports at-least-once delivery semantics

  • Secure authentication using OAuth 2.0 Client Credentials with Connected App client ID and client secret

  • One task per Salesforce topic — tasks.max must be ≥ the number of topics in salesforce.topics

Configuration

Configuration options are grouped as follows:

Authentication

Required settings to authenticate against Salesforce and connect to the Pub/Sub API using OAuth 2.0 Client Credentials.

Key Type Mandatory Default Description

salesforce.client.id

String

Yes

Salesforce OAuth Client ID (Connected App Consumer Key).

salesforce.client.secret

Password

Yes

Salesforce OAuth Client Secret (Connected App Consumer Secret).

salesforce.instance.url

String

Yes

Salesforce Instance URL, e.g. https://your-domain.my.salesforce.com.

salesforce.tenant.id

String

Yes

Salesforce Organisation ID (Tenant ID). Typically starts with 00D.

salesforce.pubsub.endpoint

String

No

api.pubsub.salesforce.com:7443

Salesforce Pub/Sub API gRPC endpoint in host:port format.

Topic Routing and Replay

Key Type Mandatory Default Description

salesforce.topics

List

Yes

Comma-separated list of Salesforce topics to subscribe to. Example: /event/MyEvent__e,/data/Account. The number of topics must be ≤ tasks.max.

topic.prefix

String

Yes

Prefix for destination Kafka topic names. Salesforce topic path slashes are replaced with dots and this prefix is prepended. Example: prefix salesforce. + source /event/MyEvente → Kafka topic salesforce.event.MyEvente.

salesforce.replay.preset

String

No

EARLIEST

Starting position for new subscriptions (when no stored offset exists). EARLIEST: read from the beginning of the retained event stream. LATEST: start from the current tip, skipping historical events.

Performance Tuning

Key Type Mandatory Default Description

salesforce.batch.size

Integer

No

100

Maximum records returned per poll() call. Salesforce supports a maximum of 10,000 events per request.

salesforce.queue.capacity

Integer

No

1000

Maximum events buffered in memory before pausing the gRPC consumer.

salesforce.poll.timeout.ms

Long

No

1000

Maximum time in milliseconds to wait for events during a poll() operation.

Connection Reliability (gRPC)

Key Type Mandatory Default Description

salesforce.grpc.keepalive.time.seconds

Integer

No

30

Interval in seconds between keep-alive pings sent to the server.

salesforce.grpc.keepalive.timeout.seconds

Integer

No

10

Time in seconds to wait for a keep-alive ping response before treating the connection as dead.

salesforce.grpc.shutdown.timeout.seconds

Integer

No

5

Time in seconds to wait for graceful channel shutdown before forcing termination.

Advanced Configuration

Key Type Mandatory Default Description

salesforce.schema.cache.size

Integer

No

100

Maximum number of Avro schemas to cache in memory.

salesforce.validate.connection

Boolean

No

true

Whether to validate Salesforce connectivity during connector startup.

Known limitations

  • One connector task is assigned per Salesforce topic — tasks.max must be ≥ the number of topics in salesforce.topics.

  • Only OAuth 2.0 Client Credentials is supported in this version. JWT Bearer authentication was added in 1.1.0.

  • The Salesforce Pub/Sub API must be enabled in your Salesforce organisation.

  • Event replay is subject to Salesforce retention windows — typically 3 days for Platform Events and CDC events.

  • Real-Time Event Monitoring requires a separate Salesforce license and must be enabled in your org.

License

This connector is licensed under a proprietary client-only license. It is provided exclusively to authorized clients and may not be redistributed, modified, or used outside of the terms agreed with Axual.