Files
CBDDC/src/ZB.MOM.WW.CBDDC.Core/DatasetSyncOptions.cs
Joseph Doherty 8e97061ab8
All checks were successful
NuGet Package Publish / nuget (push) Successful in 1m14s
Implement in-process multi-dataset sync isolation across core, network, persistence, and tests
2026-02-22 11:58:34 -05:00

46 lines
1.4 KiB
C#

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; } = [];
}