namespace Svrnty.CQRS.Events.ConsumerGroups.Abstractions;
///
/// Strategy for committing consumer offsets.
///
public enum OffsetCommitStrategy
{
///
/// Manual commit via CommitOffsetAsync.
/// Provides maximum control but requires explicit offset management.
/// Use when you need precise control over when offsets are committed.
///
Manual = 0,
///
/// Auto-commit after each event is yielded.
/// Provides strong at-least-once delivery guarantees but higher overhead.
/// Best for critical events where you cannot afford to reprocess.
///
AfterEach = 1,
///
/// Auto-commit after each batch of events.
/// Balances delivery guarantees with performance.
/// Best for most use cases.
///
AfterBatch = 2,
///
/// Periodic auto-commit at configured intervals.
/// Lowest overhead but may result in more duplicate processing on failure.
/// Best for high-throughput scenarios where some duplication is acceptable.
///
Periodic = 3
}