Skip to content

Feature/rearrangement#16

Merged
DirtyNative merged 21 commits intodevelopfrom
feature/rearrangement
Feb 19, 2026
Merged

Feature/rearrangement#16
DirtyNative merged 21 commits intodevelopfrom
feature/rearrangement

Conversation

@DirtyNative
Copy link
Copy Markdown
Member

No description provided.

Enables querying streams based on the aggregate type,
enhancing data access patterns.

Adds aggregate type to the `StreamAppendBatch` and
persists it as stream metadata. This metadata facilitates
`getStreamIdsByAggregateTypeAsync` queries.

Implements subtype matching for sealed class hierarchies
(e.g., Freezed unions) in `EventSerializerRegistry`,
`AggregateFactoryRegistry`, and `EventApplierRegistry` using
predicate-based type matchers. This ensures correct
serialization, factory resolution, and event application
when events are sealed class subtypes. The old "try each"
fallback is still supported for backward compatibility.
Adds the `StateBasedStore` and `StateBasedSession` to support
persistence against traditional backends via
`AggregatePersistenceAdapter`. Includes exception types for handling
adapter errors and partial saves. Also adds documentation, examples, and
completes the implementation for initial v1 and projection features.
Updates projections to process operations within a `CommitBatch`, enhancing data handling and simplifying key extraction, especially for single-stream projections.

This change involves:
- Modifying the `Session` and related classes to return a `CommitBatch` rather than a flat list of operations.
- Introducing `ProjectionCommitHandler` and `AsyncProjectionCommitHandler` for simplified inline and asynchronous projection execution.
- Adjusting `InlineProjectionExecutor` to process `CommitBatch` instances, automatically deriving keys for single-stream projections.
- Generating `registerAll` extension on `ProjectionRegistry` for streamline the discoverd projections registration.
- Removing the `extractKey` implementation from SingleStreamProjections.

These changes improve projection architecture, remove boilerplate code, and ensure consistent data flow between persistence and projection layers.
@DirtyNative DirtyNative merged commit e78c662 into develop Feb 19, 2026
2 checks passed
@DirtyNative DirtyNative deleted the feature/rearrangement branch February 20, 2026 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant