Hi,

fair enough, I would have wait for a formal vote before taking the initiative.

We had a proposal/discussion thread, but no formal vote for the acceptance.

I think in term of legal we are good as it's under the Apache license already.

I will do a full review later this week.

Regards
JB

On 10/22/2017 06:16 PM, Christian Schneider wrote:
I have now organized the repo and did the initial push with my current code of reactive components.

You can find the repo at:
https://github.com/apache/karaf-reactive-components

I would still be happy about a review. I think we should have no licensing issues as the code was only developed by me and I have an ICLA.
So I can confirm that this is fully apache licensed and written by me.

Please let me know if we need something more formal.

Best
Christian

2017-08-08 14:26 GMT+02:00 Jean-Baptiste Onofré <[email protected] <mailto:[email protected]>>:

    Hi

    I will do a new review round tomorrow morning.

    Thanks
    Regards
    JB

    On Aug 8, 2017, 13:04, at 13:04, Christian Schneider
    <[email protected] <mailto:[email protected]>> wrote:
     >I now adapted the package names as well as the maven coordinates. All
     >files should now also have the apache headers.
     >I also made sure the build now works without any running mqtt or kafka
     >server.
     >
     >I would be happy about a quick review of the current status. If there
     >are no objections then I will go ahead and ask for a git repository.
     >
     >Christian
     >
     >On 03.08.2017 08:02, Jean-Baptiste Onofré wrote:
     >> Hi Christian,
     >>
     >> the proposal is interesting, and I see a first potential use in
     >> Decanter for sure.
     >>
     >> The comment about Camel is fair as it looks very similar at first
     >glance.
     >>
     >> However, the scope is slightly different IMHO.
     >>
     >> I checked about the legal. The code should be cleanup for donation
     >> (ASF headers, package names, ...). About the dependency license, for
     >> the reactive-streams, it' OK as it uses Creative Commons Zero into
     >the
     >> Public Domain. And Reactor is already under Apache license.
     >>
     >> The DSL is a hot topic. I understand that leveraging Akka or Reactor
     >> is easier, but I'm a bit concern that we could be too much "coupled".
     >> Maybe our own simple DSL could help. Thoughts ?
     >>
     >> Thanks anyway !
     >> Regards
     >> JB
     >>
     >> On 07/19/2017 01:02 PM, Christian Schneider wrote:
     >>>
     >>>       Scope
     >>>
     >>> I recently experimented with reactive streams and built a small
     >>> component framework on top of this spec.
     >>> See https://github.com/cschneider/reactive-components
    <https://github.com/cschneider/reactive-components>
     >>>
     >>> The goal is to have a small API that can encapsulate a protocol and
     >>> transport. The code using such a reactive component should not
     >>> directly depend on the specifics of the transport or protocol.
     >>> Another goal is to have reactive features like back pressure.
     >>> Ultimately I am searching for something like Apache Camel Components
     >
     >>> but with a lot less coupling. In camel the big problem is that
     >>> components depend on camel core which unfortunately is much more
     >than
     >>> a component API. So any camel component is coupled quite tightly to
     >>> all of camel core.
     >>>
     >>>
     >>>       Proposal
     >>>
     >>> I propose to donate my code to Apache and establish this as a Apache
     >
     >>> Karaf sub project. Some people like Jean-Baptiste and Hadrian have
     >>> already expressed that they support this and I hope for some more
     >>> feedback and help.
     >>>
     >>> I chose the Karaf project at the moment but am also open to placing
     >>> this in another Apache project. Some matching projects would be
     >>> Apache Camel, Aries or Felix.
     >>>
     >>>
     >>>       Component API
     >>>
     >>> I was trying to find the simplest API that would allow similar
     >>> components to camel in one way mode.
     >>>
     >>> public interface RComponent {
     >>>      <T> Publisher<T> from(String destination, Class<T> type);
     >>>      <T> Subscriber<T> to(String destination, Class<T> type);
     >>> }
     >>>
     >>> A component is a factory for Publishers and Subscribers. From and to
     >
     >>> have similar meaning as in camel. The component can be given a
     >source
     >>> / target type to produce / consume. So with the OSGi Converter spec
     >>> this would allow to have type safe messaging without coding the
     >>> conversion in every component. Each component is exposed as a
     >service
     >>> which encapsulates most of the configuration. All endpoint specific
     >>> configuration can be done using the destination String.
     >>>
     >>> Publisher and Subscriber are interfaces from the reactive streams
     >api
     >>> (http://www.reactive-streams.org/ <http://www.reactive-streams.org/>).
    So they are well defined and
     >have
     >>> zero additional dependencies.
     >>>
     >>> I also considered to use OSGi push streams which is an OSGi spec and
     >
     >>> would also be an interesting foundation. I decided against that
     >>> though as push streams have no API that is separate from the DSL and
     >
     >>> will probably not be used a lot outside of OSGi.
     >>>
     >>> See the examples for how to use this in practice.
     >>> https://github.com/cschneider/reactive-components
    <https://github.com/cschneider/reactive-components>
     >>>
     >>>
     >>>       Possible use cases
     >>>
     >>> Two big use cases are reactive microservices that need messaging as
     >>> well as plain camel like integrations.
     >>> Another case are the Apache Karaf decanter collectors and appenders.
     >
     >>> Currently they use a decanter specific API but they could easily be
     >>> converted into the more general rcomp api.
     >>> We could also create a bridge to camel components to leverage the
     >>> many existing camel components using the rcomp API as well as
     >>> offering rcomp components to camel.
     >>>
     >>> Components alone are of course not enough. One big strength of
     >Apache
     >>> Camel is the DSL. In case of rcomp I propose to not create our own
     >>> DSL and instead use existing DSLs that work well in OSGi. Two
     >examples:
     >>>
     >>> Akka and reactive streams
     >>>
     >https://de.slideshare.net/ktoso/reactive-integrations-with-akka-streams
    <https://de.slideshare.net/ktoso/reactive-integrations-with-akka-streams>
     >>>
     >>> Reactor and reactive streams
     >>>
     
>https://de.slideshare.net/StphaneMaldini/reactor-30-a-reactive-foundation-for-java-8-and-spring
 
<https://de.slideshare.net/StphaneMaldini/reactor-30-a-reactive-foundation-for-java-8-and-spring>
     >
     >>>
     >>>
     >>> Another integration is with REST. It is already possible to
     >integrate
     >>> CXF Rest services with reactive streams using some adapters but we
     >>> could have native integration.
     >>>
     >>>
     >>>       Risks and Opportunities
     >>>
     >>> The main risk I see is not gathering a critical mass of components
     >to
     >>> draw more people.
     >>> Another risk is that the RComponent API or the reactor streams have
     >>> some unexpected limitations.
     >>> The big opportunity I see is that the rcomp API is very simple so
     >the
     >>> barrier of entry is low.
     >>> I also hope that this might become a new foundation for a simpler
     >and
     >>> more modern Apache Camel.
     >>>
     >>> So this all depends on getting some support by you all.
     >>>
     >>> Christian
     >>>
     >>>
     >>
     >
     >--
     >Christian Schneider
     >http://www.liquid-reality.de
     >
     >Open Source Architect
     >http://www.talend.com




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

Computer Scientist
http://www.adobe.com


--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to