Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
> The reason for not just passing the bytes is you are worried about exceptions in your get method?

I was looking at recompress as a target (even though I didn't change it here). Otherwise for my case bytes as an argument is fine. So just keep it simple for now?