@Override public DecodeResult<LongWritable, GenericStreamEventData<T>> decode( StreamEvent event, DecodeResult<LongWritable, GenericStreamEventData<T>> result) { key.set(event.getTimestamp()); T body = bodyFormat.read(event); Map<String, String> headers = Objects.firstNonNull(event.getHeaders(), ImmutableMap.<String, String>of()); return result.setKey(key).setValue(new GenericStreamEventData<>(headers, body)); } }