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

DeadLetterTopic #15

Open
ChromaChroma opened this issue Jul 4, 2022 · 0 comments
Open

DeadLetterTopic #15

ChromaChroma opened this issue Jul 4, 2022 · 0 comments
Labels
feature Add new functionality

Comments

@ChromaChroma
Copy link
Collaborator

ChromaChroma commented Jul 4, 2022

FIrst!

Before sending to a DeadLetterTopic, It can be a good idea to implement a retrying policy.
This means retrying /recovering+retrying a message in case of (certain specific) exceptions.
Like a timeout of another service/api or other recoverable + retryable exception.

DLT's can be use like this with a multi-DLT arrangement. or a index can be stored of which DLT message to retry later.

Add Deadletter topic for failed message handling.

When a message get processed on a faulty manner, creating an exception, it should be published to a Dead Letter Topic for later retrying.

Backoff

Repeat then drop trying to handle message.

  • Start at retry after 5-50 ms (Snel opnieuw proberen)
  • Multiply wait time by 10
  • Repeat 5 times

Considerations

Order of processing messages in system could be the wrong order, due to failure in processing.
Check if Spring Kafka's DLT's handle this concurrency
or if an implementation of message offset should be stored
or if a way of redoing should be implemented (event sourcing with snapshots)

@ChromaChroma ChromaChroma added the feature Add new functionality label Jul 4, 2022
@ChromaChroma ChromaChroma changed the title Add DeadLetterTopic DeadLetterTopic Jul 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Add new functionality
Projects
Archived in project
Development

No branches or pull requests

1 participant