Cascading does not by default support Java serialization, you need to add a java serialization hadoop serializer to your config. We do support Hadoop Writable interface by default.
I don’t remember the issues (there have been previous threads on this), but we have been unable to cleanly support enums (in general) without effecting the performance of every type.
The recommendation is to not use them.
That said, going down the path of making your enum Writable should work (haven’t tried) but you have now coupled your enum to hadoop libraries.
One other option might be to create a CoercibleType for your enum that keeps it as an integer (via the ordinal) in the tuple, but TupleEntry#getObject returns it as a enum. a proper CoercibleType will solve any comparator issues.
fwiw, using types fully in Cascading 3.1 will unlock some nice performance gains.
ckw