aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Ward <timothyjw...@apache.org>
Subject Re: Prototype for reactive streams and a messaging component abstraction
Date Thu, 29 Jun 2017 09:10:23 GMT
Hi Christian,

Did you also take a look at the OSGi produced reactive libraries? PushStreams seem to be a
much more elegant solution for what you’re trying to do, and would let you simplify the
connectors quite a lot. I think the client examples would also be quite a lot simpler. There’s
also an OSGi RFC for messaging that might be helpful to look at https://github.com/osgi/design/blob/36a3ee74db246c5a73f8d043c7172494fefee948/rfcs/rfc0229/RFC0229-MQTT.pdf.

Regards,

Tim



On 26 Jun 2017, at 17:12, Christian Schneider <chris@die-schneider.net<mailto:chris@die-schneider.net>>
wrote:

I recently looked into ways to combine messaging and streaming on OSGi.

Interestingly the best streaming solution I found for my case was Reactor (by Pivotal) which
is the core of spring 5. It works out of the box on OSGi and only has a single dependency.

The next thing was how to combine this with messaging in a loosely coupled way. I really like
Apache Camel but I think it is not up to date any more and also acquired a lot of weight over
time (especially in camel-core). So I was looking into providing a light weight component
API and combine it with Reactor.

The result is this project:

https://github.com/cschneider/streaming-osgi/tree/master/reactortest

This is the Component API: https://github.com/cschneider/streaming-osgi/blob/master/reactortest/src/main/java/component/api/MComponent.java
Actually I am unsure if the converter must be part of the API but this is the current state.

I created some POC components for Mqtt, EventAdmin and Mail.

and finally two examples:

Listen on eventadmin topic, log and forward to other topic:
https://github.com/cschneider/streaming-osgi/blob/master/reactortest/src/main/java/reactortest/ExampleEventAdmin.java

Listen to mqtt, compute average over sliding window and forward to other topic:
https://github.com/cschneider/streaming-osgi/blob/master/reactortest/src/main/java/reactortest/MqttExampleComponent.java


I think there is a lot of potential in Reactor and also in messaging components that do not
couple your code to the technology.

I would be happy about any feedback on the prototype. Beware the code is not yet split into
bundles but I hope the intention is still visible.

Best

Christian


--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message