@abstractmethod<EOL><INDENT>def fail(self, tup_id):<DEDENT>
pass<EOL>
Determine that the tuple emitted by this spout with the tup_id has failed to be processed

        It is compatible with StreamParse API.

        The tuple emitted by this spout with the tup_id identifier has failed to be
        fully processed. Typically, an implementation of this method will put that
        message back on the queue to be replayed at a later time.

        *Should be implemented by a subclass.*

        :param tup_id: the ID of the HeronTuple that has failed either due to a bolt calling ``fail()``
                       or timeout