[infinispan-dev] protobuf as a marshalling format for infinispan remote-query

Mircea Markus mmarkus at redhat.com
Wed Jul 10 09:18:07 EDT 2013


On 9 Jul 2013, at 14:20, Emmanuel Bernard <emmanuel at hibernate.org> wrote:

>>> 
>>> Ah it's quite sad protostuff does not live up to the expectation :(
>>> 
>>> Compared to the google libs, streamlike is definitely a nice approach but I feel a bit sad to have to use marshallers and the read/write pattern. Having maintained compatibility of Java serializable object, such approach gives me the creep. How would your read code end up after a couple of evolutions, with ifs and other condition branches?
>> 
>> Compared with serializable objects, ProtoStream offers runtime validation based on the proto file which should help maintenance.   
>> 
>>> There is no example in your tests that I could find. 
>>> 
>>> Do you think either the protostuff approach or even protostuff itself is salvageable ?
>> 
>> There were prototypes written with conversion between domain objects and protoXyz generated classes and the code quite ugly.  
> 
> What is ProtoXyz? Anyways, I thought Protostuff was doing just that: runtime binding of a domain model. You are saying that the generated code of ProtoStuff was crap?

protoXyz = protostuff || protbuf
The generated code +  writing adapters to transform it to domain model classes was ugly and much harder to read/write then the ProtoStream(TM) approach we suggest. 
E.g. see the decode/encode methods here, that convert between protoc generated classes and custom domain objects: http://goo.gl/d9FVo compared to the one based on ProtoStream: http://goo.gl/TKGeu


Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)







More information about the infinispan-dev mailing list