betfair / cougar

Cougar is a framework for making building network exposed service interfaces easy.
http://betfair.github.io/cougar
Apache License 2.0
27 stars 18 forks source link

Support more efficient binary transport serialisers #61

Open eswdd opened 10 years ago

eswdd commented 10 years ago

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

pmvilaca commented 10 years ago

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

andredasilvapinto commented 10 years ago

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

eswdd commented 10 years ago

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.

eswdd commented 10 years ago

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.