Draft
Conversation
Implements Phase 1 of synchronous event processor enhancement. - Added endOfSinkTransactionHook parameter to constructor and create() method - Hook called within database transaction before commit - Added error handling to ensure transaction rollback on hook failures - Maintains backward compatibility with default empty implementation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The try-catch block that caught and immediately re-threw exceptions served no purpose - transaction rollback occurs naturally when endOfSinkTransactionHook throws an exception. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Verify backward compatibility with existing tests and add comprehensive tests for new endOfSinkTransactionHook functionality: - Confirm hook called within transaction before afterSinkHook - Verify transaction rollback when hook throws exception Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2 implementation: - Create BlockingSyncEventProcessorUpdater class accepting list of BookmarkedEventProcessor<M> - Implement event filtering logic using domainEventClasses() pattern from BlockingAsyncEventProcessorWaiter - Add comprehensive tests for event type filtering with multiple processors - Tests verify correct filtering, multiple processors with same event type, empty cases Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6ceca7b to
b3adc2a
Compare
Update BlockingSyncEventProcessorUpdater to include EventSource parameter and implement catch-up mechanism that checks processor bookmarks against new events. When processors are behind, fetches missed events using EventSource.getAfter() and processes them before handling new events. - Added EventSource parameter to constructor for fetching missed events - Implemented catch-up logic that compares bookmark sequence to new event sequences - Added comprehensive tests covering catch-up and no-op scenarios when already caught up - Updated existing tests to pass new EventSource parameter Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.