test: launch the sync operator app - #17
Merged
Merged
Conversation
sadiq1971
force-pushed
the
feat/sync-operator-node
branch
from
August 25, 2026 19:29
36c2ce1 to
681ff2f
Compare
Adds the apps/syncoperator module: config, store, automation host and health, ingesting the MemberTraffic purchases the operator observes for its own synchronizer and holding the sequencer admin connection the reconciliation will grant on. Ingestion is deliberately not filtered by the node's own migration id, since a registered synchronizer is pinned to migration id 0. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Drop the synchronizer id and sequencer list from the config and take the synchronizer id from the sequencer instead. Share the MemberTraffic sum query with the DSO store. Also fixes the store test, which never ran: the operator was missing as an observer on the ingested contracts, and the suite was absent from the non-integration test list. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
sadiq1971
force-pushed
the
feat/sync-operator-node
branch
from
August 25, 2026 19:48
681ff2f to
75cbcb9
Compare
sadiq1971
force-pushed
the
feat/sync-operator-e2e-test
branch
from
August 25, 2026 19:49
e1baa3a to
e8f3872
Compare
Add package_name to the sync_operator_acs_store index, matching the shape V049 rebuilt the dso and scan indexes into; the shared MemberTraffic query filters on it. Drop trafficBalanceReconciliationDelay, which nothing reads, and the scalapb runtime deps, which the module has no generated code for. Add the module to clean-splice. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Wires the app into apps-app (config, environment, console references, metrics, config transforms) so it can be configured and started like the other apps. Adds an integration test that starts it against a base topology, checks it takes its synchronizer id from the sequencer it is configured with, then stops and restarts it. The operator runs against the splitwell synchronizer's sequencer, which stands in for a dedicated synchronizer until the test topologies include one. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Splitwell and the validator both cover start and stop with a plain restart block and a separate liveness/readiness block, on an auto-started environment. Match that rather than hand-rolling a manual-start variant. Keeps one behaviour test of our own: that the operator takes its synchronizer id from the sequencer, which the log check cannot catch because a wrong id still starts cleanly. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Wait on the sync operator admin port in WaitForPorts, and bump both its participant and its sequencer admin API in bumpCantonPortsBy, so a test that composes the app with a port bump does not point at unbumped nodes. Move the admin port to 5115, alongside the other Splice app admin APIs, rather than the 57xx band that belongs to the splitwell Canton node. Note that the sequencer port is wall clock only. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
sadiq1971
force-pushed
the
feat/sync-operator-e2e-test
branch
from
August 25, 2026 21:44
6226693 to
5f1ff0f
Compare
salindne
reviewed
Aug 26, 2026
moritzkiefer-da
approved these changes
Aug 27, 2026
This was referenced Aug 27, 2026
#16 was squash-merged, so its commits are not ancestors of the base branch and this could not simply be retargeted. Merging brings in its last two commits, the init step wording and the pinned store migration id, neither of which this branch had. SyncOperatorApp and SyncOperatorAutomationService conflicted add/add for the same reason; both belong to #16 and are taken from the base unchanged. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
sadiq1971
changed the base branch from
feat/sync-operator-node
to
feat/dedicated-sync
August 28, 2026 15:13
API index 15 is reserved for the SV admin api in the port registry, and nothing binds it, so taking it would consume the reservation unnoticed. Index 16 is the next free one; register it so the next reader does not have to work it out. Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
Signed-off-by: sadiq1971 <sadiqurr8@gmail.com>
sadiq1971
added a commit
that referenced
this pull request
Sep 1, 2026
Signed-off-by: sadiq1971 <sadiqurr8@gmail.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.
Worked on PR #16, this PR aims to add a simple start and stop test for the sync operator app introduced on PR #16.
This PR doesn't launch any new dedicated syncronizer at all, rather uses the existing setup already in the ci. Proper setup will be introduced in future.