dual message parsing, stream vs in-memory