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

Davide D'Alto daltodavide at gmail.com
Fri Aug 26 11:28:31 EDT 2016


I published an initial post on staging:
http://staging.in.relation.to/2016/08/26/should-we-drop-rest-for-neo4j/

I'm not sure how should I ask the user about it, let me know what you think.
Also, is there a way we prefer to generate poll for the website or I
can just rely on the comment?

This one looks nice: http://www.poll-maker.com/

On Fri, Aug 26, 2016 at 1:48 PM, Sanne Grinovero <sanne at hibernate.org> wrote:
> On 26 August 2016 at 12:35, Emmanuel Bernard <emmanuel at hibernate.org> wrote:
>> 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
>
> In similar situations, I sometimes exposed other services over port 80 ..
> /me ducks and runs..
>
>>
>>>
>>> > 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
>>> >
>> _______________________________________________
>> 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