Remove consistent read model support from framework#40
Merged
Conversation
Consistent (synchronous) readmodel updates added complexity without sufficient benefit. All long-lived readmodels now use eventually consistent processing via the existing async ProjectorProcessor infrastructure. Removed: - ConsistentEventProcessor interface - CONSISTENT enum value from Consistency - consistent() method from LiveModelSpecification and LongLivedReadModelSpecification interfaces - Synchronous event subscription in BoundedContextImpl - updateSharedConsistentModels method from ReadModelModule - consistentReadModels collection and constructor parameter - All consistent model test fixtures from EventDispatchingToReadModelsTest https://claude.ai/code/session_01BS1GKM5XqW4kQyauxndPoZ
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.
Summary
This change removes support for consistent (synchronously updated) read models from the event modeling framework. The framework now only supports live read models (rendered on-demand) and eventually consistent read models (asynchronously updated).
Key Changes
Removed consistent read model infrastructure:
ConsistentEventProcessorinterfaceConsistencyenum fromBoundedContextBuilderImplconsistent()method fromLiveModelSpecificationandLongLivedReadModelSpecificationinterfacesSimplified read model module:
consistentReadModelscollection fromReadModelModuleupdateSharedConsistentModels()method that handled synchronous updatesBoundedContextImplthat dispatched to consistent modelsUpdated filtering logic:
Test updates:
EventDispatchingToReadModelsTestconsistentModels()andnoConsistentModels()helper methodsImplementation Details
The removal simplifies the read model architecture by eliminating the synchronous update path. All long-lived read models now follow the eventually consistent pattern, updated asynchronously through event processors. This reduces complexity while maintaining support for both live (on-demand) and eventually consistent (asynchronously updated) read model patterns.
https://claude.ai/code/session_01BS1GKM5XqW4kQyauxndPoZ