Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Recovery] Introduce fatal errors #1780

Closed
lovromazgon opened this issue Aug 14, 2024 · 0 comments · Fixed by #1811
Closed

[Recovery] Introduce fatal errors #1780

lovromazgon opened this issue Aug 14, 2024 · 0 comments · Fixed by #1811
Assignees

Comments

@lovromazgon
Copy link
Member

We need a specific error type so the recovery mechanism will be able to detect which errors are fatal and which ones can be retried.

A fatal error should be returned in the processor node to signal that a processor nacking a record is a fatal error, as well as in the DLQ when the nack threshold is reached and the nack threshold is more than 0.

It should be possible to convert any existing error into a fatal error, for example:

err := foo()
if err != nil {
	return cerrors.FatalError(err)
}

The fatal error should implement Unwrap() error so that the wrapped error can be accessed. We should also provide a convenience function to check if it's a fatal error like cerrors.IsFatalError(err).

@raulb raulb self-assigned this Aug 21, 2024
@raulb raulb mentioned this issue Aug 28, 2024
4 tasks
@raulb raulb moved this from In Progress to In Review in Conduit Main Aug 28, 2024
@github-project-automation github-project-automation bot moved this from In Review to Done in Conduit Main Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants