Skip to content

Add persistence and replay for failed error imports - #5656

Merged
johnsimons merged 5 commits into
masterfrom
john/ef_ingestion_failure
Jul 29, 2026
Merged

Add persistence and replay for failed error imports#5656
johnsimons merged 5 commits into
masterfrom
john/ef_ingestion_failure

Conversation

@johnsimons

Copy link
Copy Markdown
Member

Introduces a new persistence mechanism for error messages that failed during their initial ingestion into ServiceControl. This ensures that these messages are reliably stored and can be re-processed at a later time.

The new FailedErrorImports table stores the failed messages, including their headers, body, and exception information. A deduplication mechanism ensures that repeated failures of the same message only update the existing record with the latest details.

Comment thread src/ServiceControl.Persistence.EFCore/Implementation/ErrorMessagesDataStore.cs Outdated
return buffer.ToArray();
}

// The row is removed before its external body: a surviving row with a missing body would replay

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you wanted to avoid this leak you could change it to flag the row as replayed and then delete in the other order.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure this is going to be an issue at all.
I am going to leave it for now.

@johnsimons
johnsimons force-pushed the john/ef_ingestion_failure branch from f556664 to 01755b3 Compare July 28, 2026 06:29
Introduces a new persistence mechanism for error messages that failed during their initial ingestion into ServiceControl. This ensures that these messages are reliably stored and can be re-processed at a later time.

The new `FailedErrorImports` table stores the failed messages, including their headers, body, and exception information. A deduplication mechanism ensures that repeated failures of the same message only update the existing record with the latest details.
@johnsimons
johnsimons enabled auto-merge July 28, 2026 23:35
@johnsimons
johnsimons force-pushed the john/ef_ingestion_failure branch from 64c73d2 to eaea6f5 Compare July 28, 2026 23:40
@johnsimons
johnsimons merged commit 5619e94 into master Jul 29, 2026
69 of 72 checks passed
@johnsimons
johnsimons deleted the john/ef_ingestion_failure branch July 29, 2026 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants