Github user merrimanr commented on the issue: https://github.com/apache/metron/pull/1213 The MessageParser.parseOptional call returns a list of JSONObjects which is then processed (field transformations applied, messages validated, etc). The difference is WHEN each processed JSONObject is written to Kafka. In the current ParserBolt each one is sent as soon as it is processed because everything runs in ParserBolt.execute. Since we are extracting that logic outside of the ParserBolt, we either need to write them all after processing is done by the abstraction or expose callbacks that the abstraction calls as it finishes processing each one. I don't think it matters much either way. I chose to use callbacks because it more closely matches the flow of the current ParserBolt. I will assume everyone is ok with callbacks and will continue work on the suggestions made in the comments.
---