To support notification mode, the Server SDK provides a SyncDestination extension to synchronize with any client application. The PingDataSync engine processes the notification and makes it available to the extension, which can be written in Java or Groovy. This generic extension type can also be used for standard synchronization mode.

Similar to database synchronization, the custom server extension is stored in the <server-root>/lib/groovy-scripted-extensions directory (for Groovy-based extensions) or the jar file in the <server-root>/lib/extensions directory (for Java-based extensions) before configuring PingDataSync for notification mode. Groovy scripts are compiled and loaded at runtime.

The Server SDK's SyncOperation interface represents a single synchronized change from the Sync Source to the Sync Destination. The same SyncOperation object exists from the time a change is detected, through when the change is applied at the destination.

The LDAP SDK's UnboundIDChangelogEntry class (in the com.unboundid.ldap.sdk.unboundidds package) has high-level methods to work with the ds-changelog-before-value, ds-changelogafter-values, and ds-changelog-entry-key-attr-values attributes. The class is part of the commercial edition of the LDAP SDK for Java and is installed automatically with PingDataSync. For detailed information and examples, see the LDAP SDK Javadoc.