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

Emmanuel Bernard emmanuel at hibernate.org
Fri Aug 26 02:53:43 EDT 2016


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




More information about the hibernate-dev mailing list