feat(#318): route event auxiliary ops through the shared Weasel.Storage seam#331
Merged
Merged
Conversation
…ge seam Consume the new Weasel.Storage.Events auxiliary-operation seam (weasel 9.17.0): archive / un-archive, tombstone, and projection-progression writes now flow through EventStorage<TId>.ArchiveStream / TombstoneStream / UpdateProgress instead of being instantiated at the call sites. - Bump Weasel family 9.16.4 -> 9.17.0. - SqlServerEventStoreDialect.BuildAuxiliaryOperations implements the SQL Server dialect of the seam, vending the operation factories (the operation classes still hold the SQL Server SQL — SYSDATETIMEOFFSET(), MERGE). - EventGraph exposes ArchiveStreamOperation / TombstoneStreamOperation / UpdateProgressOperation that downcast the boxed EventStorage<TId> and call the seam. - EventOperations (archive/un-archive/tombstone) and PolecatProjectionBatch (progression) route through those helpers; no call site instantiates SetStreamArchivedOperation / TombstoneStreamOperation / RecordProgressionOperation directly anymore. The operations already implemented Weasel.Storage.IStorageOperation (via Polecat.Internal.IStorageOperation), and WorkTracker.Add / the batch progress queue already speak that currency, so no adapter is needed — the seam result is enqueued directly. AssertDcbConsistencyOperation stays store-local (DCB tag-table EXISTS check), per issue #318's non-goals. Existing event-store suite is the safety net: archive/tombstone/progression, async daemon, per-tenant rebuild, and partitioned-archive tests all green. Co-Authored-By: Claude Opus 4.8 (1M context) <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.
Closes #318. Finishes the closed-shape convergence: the last hand-written event-store SQL — archive / un-archive, tombstone, and projection-progression writes — now rides the shared
Weasel.Storage.Eventsseam instead of being instantiated at the call sites.Depends on the upstream Weasel seam (JasperFx/weasel#360, shipped in 9.17.0).
Changes
SqlServerEventStoreDialect.BuildAuxiliaryOperationsimplements the SQL Server dialect of the new seam, vending the operation factories. The operation classes still hold the SQL Server SQL (SYSDATETIMEOFFSET(),MERGE).EventGraphexposesArchiveStreamOperation/TombstoneStreamOperation/UpdateProgressOperation, which downcast the boxedEventStorage<TId>and callArchiveStream/TombstoneStream/UpdateProgress.EventOperations(archive/un-archive/tombstone) andPolecatProjectionBatch(progression) route through those helpers. No call site instantiatesSetStreamArchivedOperation/TombstoneStreamOperation/RecordProgressionOperationdirectly anymore.Why it's clean
The operations already implemented
Weasel.Storage.IStorageOperation(viaPolecat.Internal.IStorageOperation), and bothWorkTracker.Addand the batch's progress queue already speak that currency — so the seam result is enqueued directly, no adapter needed.Out of scope
AssertDcbConsistencyOperationstays store-local (DCB tag-tableEXISTScheck), per issue #318's non-goals.Verification
Existing event-store suite is the safety net — archive/tombstone/progression, async daemon, per-tenant rebuild, and partitioned-archive tests all green locally (net10).
🤖 Generated with Claude Code