I was listening to Colm´s presentation about customizing syncope with camel
rotues. It sounds like a very powerful combination as you can influence all
changes.
For some simple cases like just listening to changes in syncope the camel
routes look a bit complicated though.

So I wonder if it would make sense to create some central event hub inside
syncope that gets notified of all changes and allows to easily attach
messaging systems.

I could imagine something like this:

interface EventBroker {
  sendEvent(String topic, Object event)
}

There could be different event classes for each type of change. If those
events have JAXB annotations it is very easy to create xml or json from
them.
The syncope classes where the events happen would just inject the
EventBroker interface and send their events.

The EventBroker would then forward the events to all EventListeners
present. An EventListener would look like that:

interface EventListener {
  onEvent(String topic, Object event)
}

So we could provide some implementations of EventListener like for ActiveMQ
and Kafka. Additionally users could also implement the interface and attach
additional messaging systems.

What do you think? Does something like this already exist? Would it make
sense to add this mechanism to syncope?
If there is interest I am willing to create the Broker as well as ActiveMQ
and Kafka impls. I am not familiar enough with the individual source for
the events to do the integration but I think it should be very easy for any
syncope core developer to add them.

Christian

-- 
-- 
Christian Schneider
http://www.liquid-reality.de
<https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de>

Open Source Architect
http://www.talend.com
<https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>

Reply via email to