Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
This use of ParseError is a little different, not sure if it's still ok?