40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using System;
|
|
|
|
namespace Svrnty.CQRS.Sagas.Configuration;
|
|
|
|
/// <summary>
|
|
/// Configuration options for saga orchestration.
|
|
/// </summary>
|
|
public class SagaOptions
|
|
{
|
|
/// <summary>
|
|
/// Default timeout for saga steps (default: 30 seconds).
|
|
/// </summary>
|
|
public TimeSpan DefaultStepTimeout { get; set; } = TimeSpan.FromSeconds(30);
|
|
|
|
/// <summary>
|
|
/// Default number of retries for failed steps (default: 3).
|
|
/// </summary>
|
|
public int DefaultMaxRetries { get; set; } = 3;
|
|
|
|
/// <summary>
|
|
/// Default delay between retries (default: 1 second).
|
|
/// </summary>
|
|
public TimeSpan DefaultRetryDelay { get; set; } = TimeSpan.FromSeconds(1);
|
|
|
|
/// <summary>
|
|
/// Whether to automatically compensate on failure (default: true).
|
|
/// </summary>
|
|
public bool AutoCompensateOnFailure { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Interval for checking pending/stalled sagas (default: 1 minute).
|
|
/// </summary>
|
|
public TimeSpan StalledSagaCheckInterval { get; set; } = TimeSpan.FromMinutes(1);
|
|
|
|
/// <summary>
|
|
/// Time after which a saga step is considered stalled (default: 5 minutes).
|
|
/// </summary>
|
|
public TimeSpan StepStalledTimeout { get; set; } = TimeSpan.FromMinutes(5);
|
|
}
|