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

Sanne Grinovero sanne at hibernate.org
Fri Aug 26 11:41:18 EDT 2016


On 26 August 2016 at 16:28, Davide D'Alto <daltodavide at gmail.com> wrote:
> 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?

Maybe make a poll on twitter?
https://blog.twitter.com/2015/introducing-twitter-polls

>
> 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