Add DCB exists/count read-option overloads and pin write-path limitations - #216
Closed
johanhaleby wants to merge 1 commit into
Closed
Add DCB exists/count read-option overloads and pin write-path limitations#216johanhaleby wants to merge 1 commit into
johanhaleby wants to merge 1 commit into
Conversation
Qodana Community for JVM74 new problems were found
View the detailed Qodana reportTo be able to view the detailed Qodana report, you can either:
To get - name: 'Qodana Scan'
uses: JetBrains/[email protected]
with:
upload-result: trueContact Qodana teamContact us at [email protected]
|
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 24, 2026 15:12
daf4efb to
3393a5e
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
2 times, most recently
from
June 24, 2026 17:52
5d3901c to
ace109d
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 24, 2026 17:52
3393a5e to
7920fbf
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 25, 2026 05:07
ace109d to
adb1154
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 25, 2026 05:07
7920fbf to
fcdab40
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 25, 2026 12:05
adb1154 to
cbe3408
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 25, 2026 12:05
fcdab40 to
6c8056f
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 26, 2026 10:31
cbe3408 to
ac92420
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
2 times, most recently
from
June 26, 2026 10:36
863bedd to
9a36a55
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 26, 2026 10:36
ac92420 to
fcbc091
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 26, 2026 11:22
9a36a55 to
8c30fb6
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 26, 2026 11:22
fcbc091 to
b55c310
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 26, 2026 11:37
8c30fb6 to
c447058
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 26, 2026 11:37
b55c310 to
6f56899
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 29, 2026 06:30
c447058 to
ff27fbb
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 29, 2026 06:30
6f56899 to
bc17321
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 29, 2026 09:59
ff27fbb to
f7630cd
Compare
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 29, 2026 09:59
bc17321 to
d959949
Compare
…ions Review follow-ups for the DCB write path. The two correctness findings (unconditional-append skew and read-watermark overshoot) landed in the write-path PR; this covers the smaller items. - DcbEventStore.exists/count gain DcbReadOptions overloads that scope the check to a position window. The Spring Mongo store answers them with a direct exists/count query; the in-memory store uses the read-based default. - Rename DcbReadOptions.between parameters to the type's vocabulary (afterSequencePosition/upToSequencePosition), semantics kept in the javadoc. - Pin the position-window overloads and the MatchAll concurrency limitation (a MatchAll condition does not detect a tag-scoped append) with tests. - Document marker-collection growth and safe pruning in ADR 0021. Co-Authored-By: Claude Opus 4.8 <[email protected]>
johanhaleby
force-pushed
the
johan/dcb-review-followups
branch
from
June 29, 2026 10:12
d959949 to
812f460
Compare
johanhaleby
force-pushed
the
johan/dcb-starter-combined-mode-test
branch
from
June 29, 2026 10:12
f7630cd to
42e4596
Compare
Owner
Author
|
Landed via the consolidated #234. |
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.
What
Follow-ups from the deep review of the DCB write path. The two correctness findings, the unconditional-append skew and the read-watermark overshoot, already landed in the write-path PR. This one cleans up the smaller items.
DcbEventStore.existsandcountnow haveDcbReadOptionsoverloads, so you can ask "does anything match in this window" the same wayreadalready scopes by position. The Spring Mongo store answers them with a direct exists or count query. The in-memory store uses the read-based default.DcbReadOptions.betweennow names its parametersafterSequencePositionandupToSequencePositionto match the rest of the type. The exclusive and inclusive semantics stay in the javadoc.Two items I left alone, with reasons
The review also flagged the Kotlin
DcbExecuteOptions<*>cast and the decider DSL not takingDcbExecuteOptions. Both rest on the premise that the stream side does it differently. It does not.@Suppress("UNCHECKED_CAST")overExecuteOptions<*>with anas ExecuteOptions<E>cast. The DCB code mirrors it on purpose. A variance-based fix is reasonable, but it belongs on both at once, not on DCB alone where it would drift from the established pattern.ExecuteOptionseither. Adding options only to the DCB decider DSL would create the asymmetry the finding wanted to remove, not fix it.I would rather keep DCB consistent with the stream DSL than half-apply either change. Happy to do both as a separate cross-cutting pass if you want the variance cleanup.
Tests
All green:
DcbApiTest15,InMemoryEventStoreDcbTest20,SpringMongoEventStoreDcbTest16, including the new position-window and MatchAll-limitation tests.