StepSemantics.java

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package software.amazon.lambda.durable;

/**
 * Delivery semantics for step operations.
 *
 * <p>Controls how the SDK handles step execution and interruption recovery.
 */
public enum StepSemantics {
    /**
     * At-least-once delivery (default). The step may be re-executed if interrupted. START checkpoint is
     * fire-and-forget.
     */
    AT_LEAST_ONCE_PER_RETRY,

    /**
     * At-most-once delivery per retry attempt. The step will not be re-executed if interrupted. START checkpoint is
     * awaited before user code runs. If interrupted, throws
     * {@link software.amazon.lambda.durable.exception.StepInterruptedException}.
     */
    AT_MOST_ONCE_PER_RETRY
}