Event-storage E2: consume Weasel 9.15.0 — descriptor core moves to Weasel.Storage#4900
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XNfeNz73Q3EdiTgSeDbo96
…n Weasel.Storage Consumes Weasel 9.15.0 (weasel#341), which relocated the dialect-neutral event descriptor core into the shared Weasel.Storage package so Marten and Polecat (SQL Server) share it. Marten deletes its copies and adapts the Postgres dialect to the neutral contracts. Deleted from Marten (now in namespace Weasel.Storage): - RichEventStorageDescriptor / QuickEventStorageDescriptor / QuickWithServerTimestampsEventStorageDescriptor - IEventMetadataBinder + the 5 metadata binders (Sequence / Headers / Causation / Correlation / UserName) - IEventStoreSqlDialect Marten-side adaptation (PostgresEventStoreDialect): - The three Build*Descriptor methods implement the neutral interface signatures (EventRegistry / IStorageSerializer) and downcast to EventGraph / ISerializer internally. - The stream-command configurers stay Postgres-typed; a small Adapt() helper bridges them to the descriptors' neutral Action<Weasel.Core.ICommandBuilder, StreamAction> slots (the runtime builder is always the Postgres one). - Quick / QuickWithServerTimestamps storage cast the descriptor factory's neutral Weasel.Storage.IStorageOperation back to Marten's IStorageOperation. PostgresEventStoreDialect, the storage classes, and the operations stay in Marten. README notes the move. Validated (net10): EventSourcingTests 1432, TenantPartitionedEventsTests 228, all green; full solution Debug + Release clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 8, 2026
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.
Part of the #4821 / #4830 follow-on — moving the closed-shape event storage into Weasel.Storage so Polecat can ship its SQL Server event dialect. This slice consumes Weasel 9.15.0 (weasel#341), which physically relocated the dialect-neutral event descriptor core into the shared package. Marten deletes its copies and adapts.
Follows E0 (#4885) and E1 (#4898), both merged.
Moved to
Weasel.Storage(deleted from Marten here)RichEventStorageDescriptor,QuickEventStorageDescriptor,QuickWithServerTimestampsEventStorageDescriptorIEventMetadataBinder+ the 5 metadata binders (Sequence/Headers/Causation/Correlation/UserName)IEventStoreSqlDialectMarten-side adaptation (
PostgresEventStoreDialect)Build*Descriptormethods implement the neutral interface signatures (EventRegistry/IStorageSerializer) and downcast toEventGraph/ISerializerinternally.mt_streamsinsert/update-version configurers stay Postgres-typed; a smallAdapt()helper bridges them to the descriptors' neutralAction<Weasel.Core.ICommandBuilder, StreamAction>slots (the runtime builder is always the Postgres one, so the cast back is safe).Weasel.Storage.IStorageOperationback to Marten'sIStorageOperation.PostgresEventStoreDialect, the storage classes, and the operations stay in Marten. TheEventStorage/README.mdnotes the move.Validation
Marten.slnxDebug + Release cleanNext: E3 — move the storage hierarchy (
EventStorage<TId>+ the three storages +EventStorageBuilder) and the per-event / stream / assert operations into Weasel.Storage (with new thin neutral op bases). That's the slice that unblocks Polecat'sSqlServerEventStoreDialect.🤖 Generated with Claude Code