aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Daniel <david.daniel.1...@gmail.com>
Subject Re: Prototype for reactive streams and a messaging component abstraction
Date Mon, 26 Jun 2017 16:28:40 GMT
Thank you for providing this as in a month I have a task to look at
something similar.  I have been playing with how to make our application
more message based and resilient.  Other good libraries I have seen and was
looking forward to playing with were ActiveMQ Artemis for messaging.  I
like how it is embeddable, clusterable and standards compatible it is.  I
also was looking into Pax Web's undertow implementation so I can keep all
my components that use the OSGI httpservice but take advantage of the
non-blocking handlers and message passing.  Undertow got OSGI headers
pulled in from a PR last week.  I know Nick posted some reactive stuff he
has been working on in Pentaho and Achim posted a vertx sample.  I have
looked at OSGI push streams in the past but there was very little
documentation on it even though I found the projects code online.  It would
be really great to see the OSGI community coalesce around some good
practices as I feel like everyone is doing their own thing and I don't know
enough about how to integrate functional/reactive development with
services/modular development.

On Mon, Jun 26, 2017 at 12:12 PM, Christian Schneider <
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/compone
> nt/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/rea
> ctortest/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/rea
> ctortest/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