Если вы сохраняете свои объекты в части Value пары KeyValue, это действительно просто массив/последовательность байтов (например, в коде для класса KeyValue существует метод getValue, который возвращает массив байтов).
На данный момент вы планируете сериализацию объектов, и есть множество библиотек, которые вы можете использовать с различной простотой использования, характеристиками производительности и деталями реализации. Avro является один тип библиотеки сериализации, которая хранит схему с каждой записью, но вы могли бы в использовании теории:
- Стандартная сериализация (реализации Serializable)
- Kryo
- Protobuf
Просто назвать несколько. Вы можете исследовать различные сильные стороны каждой библиотеки & своих компромиссов и баланса, которые против типа объектов, которые вы планируете хранить (т. Е. Все они являются фактически одним и тем же типом объекта или широко варьируются по типу? долговечные, то есть годы и ожидающие эволюции схемы. & обратная совместимость и т. д.)