Implement in-process multi-dataset sync isolation across core, network, persistence, and tests
All checks were successful
NuGet Package Publish / nuget (push) Successful in 1m14s

This commit is contained in:
Joseph Doherty
2026-02-22 11:58:34 -05:00
parent c06b56172a
commit 8e97061ab8
60 changed files with 4519 additions and 559 deletions

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
namespace ZB.MOM.WW.CBDDC.Core;
/// <summary>
/// Configures synchronization behavior for a single dataset pipeline.
/// </summary>
public sealed class DatasetSyncOptions
{
/// <summary>
/// Gets or sets the dataset identifier.
/// </summary>
public string DatasetId { get; set; } = global::ZB.MOM.WW.CBDDC.Core.DatasetId.Primary;
/// <summary>
/// Gets or sets a value indicating whether this dataset pipeline is enabled.
/// </summary>
public bool Enabled { get; set; } = true;
/// <summary>
/// Gets or sets the delay between sync loop cycles.
/// </summary>
public TimeSpan SyncLoopDelay { get; set; } = TimeSpan.FromSeconds(2);
/// <summary>
/// Gets or sets the maximum number of peers selected per cycle.
/// </summary>
public int MaxPeersPerCycle { get; set; } = 3;
/// <summary>
/// Gets or sets the maximum number of oplog entries pushed or pulled in one cycle.
/// </summary>
public int? MaxEntriesPerCycle { get; set; }
/// <summary>
/// Gets or sets an optional maintenance interval override for this dataset.
/// </summary>
public TimeSpan? MaintenanceIntervalOverride { get; set; }
/// <summary>
/// Gets or sets collection interests for this dataset pipeline.
/// </summary>
public List<string> InterestingCollections { get; set; } = [];
}