You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Instead of using auto-commit (lazy implementation for MVP) which has small potential for data loss in case of application crash, ensure that a message is not committed in the Source Kafka partition until it has been successfully Acked/Failed.
Ideally this should also robustly handle failure to Send()/Fail() (at minimum reporting an Event with sufficient information for logging or similar).
Proposed Timeline
This will be a non-trivial lift since it requires quite a few feature changes and tracking all messages through to use the offset watermark effectively.
Proposed Solutions
For handling timeout / loss in kafka, (e.g. not committing the offset until we guarantee all messages before it have been fully handled) it looks like we would disable automatic commit store, manually track which messages were successfully handled, and then use one of the Commit() methods to manually commit. This is likely a post-MVP feature if we are going to maintain significant use of Kafka for a while. Should be thoughtful to leave sufficient hooks for this in the Receive() and Ack() methods.
The text was updated successfully, but these errors were encountered:
Summary
Instead of using auto-commit (lazy implementation for MVP) which has small potential for data loss in case of application crash, ensure that a message is not committed in the Source Kafka partition until it has been successfully Acked/Failed.
Ideally this should also robustly handle failure to Send()/Fail() (at minimum reporting an
Event
with sufficient information for logging or similar).Proposed Timeline
This will be a non-trivial lift since it requires quite a few feature changes and tracking all messages through to use the offset watermark effectively.
Proposed Solutions
For handling timeout / loss in kafka, (e.g. not committing the offset until we guarantee all messages before it have been fully handled) it looks like we would disable automatic commit store, manually track which messages were successfully handled, and then use one of the Commit() methods to manually commit. This is likely a post-MVP feature if we are going to maintain significant use of Kafka for a while. Should be thoughtful to leave sufficient hooks for this in the Receive() and Ack() methods.
The text was updated successfully, but these errors were encountered: