[hibernate-dev] [OGM] Bolt vs Rest for Neo4j

Emmanuel Bernard emmanuel at hibernate.org
Fri Aug 26 07:35:06 EDT 2016


On Fri 2016-08-26 11:32, Gunnar Morling wrote:
> > How much additional work would it be to keep the "old" rest in a legacy
> module separated from the pure one?
> > Does it even make sense?
> 
> As a user, when would I prefer which one over the other? If Bolt is the
> general recommendation, I'd limit efforts on this one. It seems to be one
> of those knobs I'd prevent the user from having to set if possible.

The one I can think of is not being able to open custom ports

> 
> > Can you write a blog post with a small poll to know if anyone complains
> > about dropping REST
> 
> +1. Would be nice to get some feedback.
> 
> 
> 
> 2016-08-26 10:10 GMT+02:00 Emmanuel Bernard <emmanuel at hibernate.org>:
> 
> > Can you write a blog post with a small poll to know if anyone complains
> > about dropping REST. Let's have it on for a week and make a decision. If
> > nothing conclusive comes out, let's drop it.
> >
> > On Fri 2016-08-26  8:27, Davide D'Alto wrote:
> > > > Thinking out loud. How much additional work would it be to keep the
> > "old" rest in a legacy module
> > >
> > > It would still require to be maintained, I would prefer not to have it
> > > unless there is a specific use case for it
> > >
> > > >. Does Bolt run atop HTTP as I remember it
> > >
> > > I don't think so, it's a binary protocol that connects to a port using
> > sockets.
> > >
> > > > PS: it's a bit sad that we implement something (rest remote) and it's
> > ready and by lack of release it is replaced and remove it without seeing
> > the light of day. Release often.
> > >
> > > That's actually a bad call from my side, I wanted to release with the
> > > new ORM and it took longer than expected to merge the PR.
> > >
> > > Davide
> > >
> > > On Fri, Aug 26, 2016 at 7:53 AM, Emmanuel Bernard
> > > <emmanuel at hibernate.org> wrote:
> > > > Thinking out loud. How much additional work would it be to keep the
> > "old" rest in a legacy module separated from the pure one?
> > > > Does it even make sense?
> > > >
> > > > I'm fine with the removal and focus on bolt on a general basis. Does
> > Bolt run atop HTTP as I remember it ? Or is that specific ? If the later
> > some might want to keep using rest.
> > > >
> > > > Emmanuel
> > > >
> > > > PS: it's a bit sad that we implement something (rest remote) and it's
> > ready and by lack of release it is replaced and remove it without seeing
> > the light of day. Release often.
> > > >
> > > >> On 22 août 2016, at 22:25, Guillaume Smet <guillaume.smet at gmail.com>
> > wrote:
> > > >>
> > > >> Hi Davide,
> > > >>
> > > >> I wanted to add 2 things:
> > > >> - Neo4j remote with Rest has not been released yet;
> > > >> - if we remove the Rest protocol, remote Neo4j will only be supported
> > with
> > > >> Neo4j >= 3
> > > >>
> > > >> Personally I'm +1 to only support remote Neo4j with Bolt. Maintaining
> > one
> > > >> more dialect/protocol just to provide remote for Neo4j < 3 does not
> > sound
> > > >> like a good tradeoff to me.
> > > >>
> > > >> --
> > > >> Guillaume
> > > >>
> > > >>> On Mon, Aug 22, 2016 at 8:11 PM, Davide D'Alto <davide at hibernate.org>
> > wrote:
> > > >>>
> > > >>> Hello,
> > > >>> at the moment in OGM we connect remotely using the Rest API.
> > > >>> The reason is that when I created the dialect the new Bolt[1]
> > protocol
> > > >>> wasn't available.
> > > >>>
> > > >>> I've now finished implementing the dialect so that it uses the Bolt
> > > >>> protocol, there is a lot of duplication since it is very similar to
> > > >>> the approach I used for Rest.
> > > >>>
> > > >>> I worked for a while trying to improve the code but I started to
> > > >>> wonder if it might be really helpful to provide two ways to connect
> > > >>> remotely with an increase in complexity of the code (more interfaces
> > > >>> mainly with some additional classes).
> > > >>>
> > > >>> I'm now of the idea that we could remove the dialect thata uses Rest
> > > >>> and only keep the one that uses Bolt (as suggested by Giulliame in an
> > > >>> old chat on hipchat).
> > > >>>
> > > >>> This will simplify the code and we can always add it back if the need
> > > >>> arise or somebody asks.
> > > >>> Note that the Bolt protocol is the suggested one to use for Neo4j
> > > >>> since it promises better performance.
> > > >>> It will also allow us to remove some dependencies required for the
> > rest
> > > >>> client.
> > > >>>
> > > >>> Please, let me know if you think there is value in keeping  both
> > > >>> approaches, otherwise I'm going to send a PR that removes the remote
> > > >>> one.
> > > >>>
> > > >>> Thanks,
> > > >>> Davide
> > > >>>
> > > >>> [1]  https://dzone.com/articles/introducing-bolt-neo4js-
> > > >>> upcoming-binary-protocol-p
> > > >>> _______________________________________________
> > > >>> hibernate-dev mailing list
> > > >>> hibernate-dev at lists.jboss.org
> > > >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > > >> _______________________________________________
> > > >> hibernate-dev mailing list
> > > >> hibernate-dev at lists.jboss.org
> > > >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > > >
> > > >
> > > > _______________________________________________
> > > > hibernate-dev mailing list
> > > > hibernate-dev at lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >


More information about the hibernate-dev mailing list