betfair/cougar

Support more efficient binary transport serialisers

Opened this issue · 4 comments

Possibly using kryo, see list here:
https://github.com/EsotericSoftware/kryo

Sounds good.. Are you planning to provide a way to allow the service owner to decide the serializer?

Kryo looks like a good choice from the benchmarks I've seen:
https://github.com/eishay/jvm-serializers/wiki

There is also another solution which apparently is usually a bit faster than Kryo but is a little more underground (and probably not worth it right now):
https://code.google.com/p/fast-serialization/
http://fast-serialization.googlecode.com/files/result-1.24.html

Not sure on service owner deciding right away, the first cut would at least make it pluggable but the concern on a wide choice of serialisers would be to reduce compatibility between Cougar's.

@andredasilvapinto that was the link I meant to post. oops! Thanks.

I was actually considering that we'd have multiple serialisers loaded and that we'd select the best one available at both ends at runtime / connection time.

Now, what defines 'best' might be left to the service owner, but also might be best decided by the client since they know best the style of interaction they'll be performing and also the connection properties for the network between them. So maybe the service owner gets to filter what is available but the client chooses the most appropriate from that list.