Exceptions and error handling

All exceptions are defined at loafer.exceptions module.

A description of all the exceptions:

  • ConsumerError: a fatal error from a consumer instance. Loafer will stop all operations and shutdown.
  • ConfigurationError: a configuration error. Loafer will stop all operations and shutdown.
  • IgnoreMessage: if the handler raises this exception, the message will be ignored and not acknowledged.
  • RejectMessage: if the handler raises this exception, the message will be rejected and acknowledged (e.g., the message will be deleted).

At the message translation phase

If the message translator returns an invalid message content or an unhandled exception:

  1. The message will not be delivered to handler
  2. The message will be ignored (e.g., will not be deleted)

At the handler processing phase

The handler can use IgnoreMessage or RejectMessage to explicity determine how the message will be handled.

Any unhandled exceptions will have the same effect of IgnoreMessage, but is advised to handler treat its own errors in case of change of behavior in the future.

Message deletion

The message will be deleted (acknowledged):

  1. When the handler raises RejectMessage
  2. Succesfull executions of handler