Github user ottobackwards commented on a diff in the pull request:
https://github.com/apache/metron/pull/972#discussion_r176855220
--- Diff: metron-platform/metron-parsers/README.md ---
@@ -45,6 +45,33 @@ There are two general types types of parsers:
* `ERROR` : Throw an error when a multidimensional map is encountered
* `jsonpQuery` : A [JSON Path](#json_path) query string. If present,
the result of the JSON Path query should be a list of messages. This is useful
if you have a JSON document which contains a list or array of messages embedded
in it, and you do not have another means of splitting the message.
* A field called `timestamp` is expected to exist and, if it does not,
then current time is inserted.
+
+## Parser Error Routing
+
+Currently, we have a few mechanisms for either deferring processing of
+messages or marking messages as invalid.
+
+### Invalid
+
+There are two ways for a message to get marked as invalid:
+* Fail [global validation](../metron-common#validation-framework)
+* Fail the parser's validate function (generally that means to not have a
`timestamp` field or a `original_string` field.
+
+Those messages which are marked as invalid are sent to the error queue
+with an indication that they are invalid in the error message.
+
--- End diff --
Maybe filtering shouldn't be mixed in with errors?
---