Abstract The definitions of the message that is handled.
The service configuration object
Optional handlePreprocessor: HandlePreprocessor<TMessage, TContext>A preprocessor that is called before the handleMessage and handleErrorMessagemethods. It can be used for validations and to provide an optional context.
Readonly aggregateProtected configThe service configuration object
Protected Optional handleA preprocessor that is called before the handleMessage and handleErrorMessagemethods. It can be used for validations and to provide an optional context.
Protected loggerReadonly messageProtected messagingThe definitions of the message that is handled.
Is called from the transactional inbox and calls the abstract
handleMessage function with the correct message payload typing. Do not
override this message but implement the handleMessage message.
The inbox message with the payload to handle.
The database client that is part of a DB env owner transaction to safely handle the inbox message.
Is called from the transactional inbox and calls the handleErrorMessage
function with the correct message payload typing. Do not override this
message but override the handleErrorMessage message.
The error that was thrown in the handle method.
The inbox message with the payload that was attempted to be handled.
The database client that is part of a (new) transaction to safely handle the error.
True if the message will be retried again.
A flag that defines if the message should be retried ('transient_error') or not ('permanent_error')
Optionally override this method with your custom business logic to handle
an error that was caused by the handleMessage method. The default
implementation logs the error if there are no further retries.
The error that was thrown in the handleMessage method.
The inbox message with the payload that was attempted to be handled.
True if the message will be retried again.
Optional _context: TContextAbstract handleImplement to execute your custom business logic to handle a message that was stored in the inbox.
The inbox message with the payload to handle.
The database client that is part of a DB env owner transaction to safely handle the inbox message.
Optional context: TContextIf something fails and the inbox message should NOT be acknowledged - throw an error.
Protected updateModifies the original error by extending its details subobject, if exists. Default behavior adds tenantId and environmentId to the details object by parsing the routing key. If still not available - returns original error. Some routing keys will not have tenantId and environmentId, e.g. when a command is sent. A separate handling is needed to extact these values, e.g. from the jwt.
Optional _context: TContextGenerated using TypeDoc
Create a new Message handler that provides both the functionality to store an incoming RabbitMQ message in the inbox and provides the actual logic to execute the business logic that is based on that message.