Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

This page contains topics supporting ongoing discussion at dev@syncope.apache.org.

Tracked as SYNCOPE-1617.

General idea

Syncope supports since its beginning the concepts of propagating to, pushing to and pulling from External Resources, as implementations of the general provisioning features; in particular, different pull modes are supported, all of them based on the assumption that provisioning is always triggered by Syncope itself.

What is currently missing is support for livesync, e.g. the ability to pull entities upon receving notification that there is something available to pull.

Implementation

At implementation level, Syncope will allow to define a new Entity named LiveSync with the following characteristics:

  1. define some kind of listener to a queue instance, supposed not to be provided by Syncope but available by infrastructure, where:
    1. listener can be implemented by a set of supported technologies to choose from
    2. message payload, published by a set of supported providers, is translated into ConnId's SyncDelta, already used by Pull
  2. define mapping information as External Resources do
  3. define trace levels and other supporting configuration, again similarly to External Resources

Overall, when a new message is published into a subscribed queue for which a LiveSync instance is defined, Syncope will:

  1. translate the message payload into an equivalent SyncDelta instance
  2. trigger the execution of SinglePullJobDelegate for the given SyncDelta instance, processed on the basis of the defined mapping

Listeners

A good starting point would be to support at least Apache Kafka.

Providers