feat: implement native RavenDB-backed control queue for Wolverine#3285
Merged
jeremydmiller merged 2 commits intoJul 5, 2026
Merged
Conversation
Member
|
Acknowledge your PR, we will review the same sooner. |
Member
|
@danielwinkler Hey, I'm going to pull this in, but also add some extra tests. We've got some compliance tests leadership. And I might try to turn this into a full blown transport too because why now? |
knotekbr
pushed a commit
to knotekbr/wolverine
that referenced
this pull request
Jul 6, 2026
…venDb control transport Adds two compliance suites exercising the native RavenDB control queue added in JasperFx#3285, and promotes it to a first-class "ravendb://" transport so it can pass the standard TransportCompliance battery. Framework changes (Wolverine.RavenDb): - Rename the control-transport scheme "ravencontrol" -> "ravendb". - Register the RavenDbControlTransport eagerly in UseRavenDbPersistence so the "ravendb://" scheme resolves for publishing rules configured at bootstrap (previously it registered lazily in RavenDbMessageStore.Initialize, so a config-time PublishAllMessages().To("ravendb://...") threw "Unknown Transport scheme"). The IDocumentStore is resolved lazily in the transport's InitializeAsync. The control endpoint only becomes a live listener when the message store promotes it to the NodeControlEndpoint under Balanced durability, so Solo hosts never poll — no behavior change for Solo. Compliance harness (Wolverine.ComplianceTests): - TransportComplianceFixture gains an overridable Mode (default Solo) so a control-plane transport that only wires its NodeControlEndpoint under Balanced can run the standard suite. Purely additive; every existing fixture stays Solo. Tests: - control_transport_compliance: full TransportCompliance<T> over a Balanced two-node fixture sharing one embedded store — 22/22, no skips. Cluster cadence tightened in-fixture (CheckAssignmentPeriod/ScheduledJobPollingTime) so the leader-assigned scheduled-job agent is assigned promptly (the 30s default made schedule_send flap). - control_queue_leadership_election_compliance: full LeadershipElectionCompliance over ravendb:// instead of UseTcpForControlEndpoint() — 13/13, covering fan-out, send-to-node, and leader failover on the native control queue. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jul 9, 2026
Merged
This was referenced Jul 14, 2026
Open
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.
No description provided.