Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
I'm not sure about this at all. Do we need to keep the bytes of the thrift structure that failed for ingest?