---
title: Kafka requirements and restrictions
description: Learn about the requirements and restrictions that apply when using a Kafka sync destination with PingDataSync.
component: pingdirectory
version: 10.3
page_id: pingdirectory:pingdatasync_server_administration_guide:pd_sync_kafka_requirements_restrictions
canonical_url: https://docs.pingidentity.com/pingdirectory/11.1/pingdatasync_server_administration_guide/pd_sync_kafka_requirements_restrictions.html
llms_txt: https://docs.pingidentity.com/pingdirectory/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: 2026-10-13T00:00:00Z
page_aliases: ["pd_sync_restrictions.adoc"]
superseded_by: https://docs.pingidentity.com/pingdirectory/11.1/pingdatasync_server_administration_guide/pd_sync_kafka_requirements_restrictions.html
---

# Kafka requirements and restrictions

The following requirements and restrictions apply to using a Kafka sync destination:

* The sync source must be a PingDirectory server.

* You must configure the sync pipe in notification mode (`synchronization-mode:notification`), because a Kafka sync destination can't retrieve the current version of a destination entry. It can only make use of the attributes provided in the `changelog` record.

* You must enable the `changelog` backend on all instances of the source PingDirectory servers. The following changes apply only to the source PingDirectory servers:

  * The configuration property `changelog-max-before-after-values` must be set to a value greater than `0` to ensure that the before and after values of an entry are included in Kafka messages.

  * To ensure the availability of an entry's user attributes from before and after a change, the configuration property `changelog-include-key-attribute` must include `'*'`.

    No operational attributes are included in Kafka messages with this configuration.

  * To add specific operational attributes to Kafka messages, you must include them in the `changelog-include-key-attribute` property. For example:

    ```shell
    bin/dsconfig set-backend-prop --backend-name changelog \
      --add changelog-include-key-attribute:ds-pwp-account-disabled
    ```

  * The following sample configuration for the `changelog` backend meets the minimum requirements and only includes user attributes:

    ```shell
    bin/dsconfig set-backend-prop \
      --backend-name changelog \
      --set enabled:true \
      --set 'changelog-include-key-attribute:*' \
      --set changelog-max-before-after-values:1
    ```
