This implementation relies on the implementation of read/write and assumes that each `write` will produce a new `data` event. If two writes get ever squashed together into a single `data` event, you will discard the beginning of the second message and never recover.

1st call: `{ "foo":`
2nd call: `"bar" }{ "another": `
3rd call: `"baz" }`