Overview
This section explains the design and error handling model of the Error Reprocessing feature.
Design
The ingester component is responsible for the processing of events and in case of an error, the ingester constructs an error event and writes it to an error topic along with the persisting error information in the error table. The actual incoming payload (assembled or multipart) is stored as part of the error information in the table. During redelivery, this payload is retrieved from the error table and processed again.
Reprocessing Messages
To reprocess failed messages, an API service is used to post the error events to the reprocess topic, which the ingester then consumes and processes the payload again.
Error Handling
An overview of the error entity model that is used to store error information is given below. The ms_error table is available in the database for this purpose.
|
Field Name |
Field Type |
Description |
|---|---|---|
|
dataEventId |
java.lang.String |
The actual eventId of the incoming payload from Eventrecord.eventId. |
|
errorEventId |
java.lang.String |
A unique Id received from AvroErrorSchema.eventId |
|
errorMessage |
java.lang.String |
Holds the error message and error code for the failure encountered during processing. |
|
errorSourceTopic |
java.lang.String |
Source topic from which the payload was retrieved - AvroErrorSchema.errorSource |
|
lastProcessedTime |
java.sql.Timestamp |
Time stamp of the error entry made. |
|
payload |
Blob |
Payload data from AvroErrorSchema.payload. |
|
Status |
java.lang.String |
Either PROCESSED or UNPROCESSED. |
In this topic