Project: mesos
Issue MESOS-3067: Implement a streaming response decoder for events stream
We need a streaming response decoder to de-serialize chunks sent from the master on the events stream. From the HTTP API design doc: Master encodes each Event in RecordIO format, i.e. a string representation of length of the event in bytes followed by JSON or binary Protobuf (possibly compressed) encoded event. As of now for getting the basic features right , this is being done in the test-cases: {code} auto reader = response.get().reader; ASSERT_SOME(reader); Future eventFuture = reader.get().read(); AWAIT_READY(eventFuture); Event event; event.ParseFromString(eventFuture.get()); {code} Two things need to happen: - We need master to emit events in RecordIO format i.e. event size followed by the serialized event instead of just the serialized events as is the case now. - The decoder class should then abstract away the logic of reading the response and de-serializing events from the stream. Ideally, the decoder should work with both "json" and "protobuf" responses.
Story points: 3