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

Davide D'Alto davide at hibernate.org
Fri Aug 26 03:27:19 EDT 2016


> 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



More information about the hibernate-dev mailing list