Skip to content

Conversation

@danielmarbach
Copy link
Contributor

@danielmarbach danielmarbach commented Aug 12, 2025

This pull request is based on the work of @hasancanguler started in #769 and applies a few changes on top of it.

  • Database and collection access consistently uses the database and collection settings. The settings were introduced as part of Ensure read and write concerns are set properly #17. If no explicit settings are passed the default settings from the client settings are applied which are either default too or overridden when the corresponding constructor of the client is called. It wasn't entirely clear from the code changes why the setting wasn't consistently overridden in all cases. The only reason I could come up with is that the settings we currently use might be a bit slower because in a cluster the client has to wait for more nodes to acknowledge which could influence the startup behavior when many sagas are present. On the other hand, other collection accesses have deliberately opted in for non-default read and write concerns, which begs the question of whether this was simply overlooked.
  • By moving relevant things into the installer it is possible to start leveraging the async APIs on the client
  • Introduce an API to disable the installers of the persistence even when the installers are enabled (other persistences offer that too)
  • Introduce similar concepts for the subscription part to align the code base.

hasancanguler and others added 2 commits August 12, 2025 16:34
(cherry picked from commit 89d01ef)
(cherry picked from commit 76072b0)
Align styling and whitespace
@danielmarbach danielmarbach mentioned this pull request Aug 12, 2025
@danielmarbach
Copy link
Contributor Author

danielmarbach commented Aug 13, 2025

This is shaping up. A few things that we probably need to discuss

  • There is some redundancy between things used in feature setup and things used in the installer. I, personally, don't think it is a big deal and would leave it as is for now.
  • As a first start there is a single "Disable" method similar to how other persisters have this global switch. Technically we could also support more granular switches, but I would postpone this to future iterations if necessary.
  • Previously the outbox code did always discover the gap between the index expiry drifting and recreated it. Now with the installer that would not happen anymore when installers disabled (which is expected). Should we add a check for drifts and log warn and add the possibility to disable the check?

@danielmarbach danielmarbach changed the title Installer support Add installer support Aug 13, 2025
@danielmarbach danielmarbach requested a review from afprtclr August 13, 2025 15:16
@danielmarbach danielmarbach marked this pull request as ready for review August 13, 2025 15:16
@hasancanguler

This comment was marked as resolved.

@danielmarbach

This comment was marked as resolved.

@danielmarbach danielmarbach requested a review from afprtclr August 18, 2025 13:00
@danielmarbach danielmarbach merged commit 71e305c into master Aug 18, 2025
4 checks passed
@danielmarbach danielmarbach deleted the installer-support branch August 18, 2025 14:14
@danielmarbach danielmarbach added this to the 6.0.0 milestone Sep 1, 2025
@danielmarbach danielmarbach changed the title Add installer support Installer support to opt into index creation Sep 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants