Oops... I haven't considered Kryo.  I think instead of overriding `readObject` & `writeObject` in classes that need to do special things when (de)serialized to/from event log streams, I can add an `EventLogAware` trait, and put event log (de)serialization logic there, including the Kryo part.