Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
Also, should be getBytes explicit length for ByteVector here and not copyBytes.