Class LocalMemoryExecutionClient

java.lang.Object
software.amazon.lambda.durable.testing.local.LocalMemoryExecutionClient
All Implemented Interfaces:
DurableExecutionClient

public class LocalMemoryExecutionClient extends Object implements DurableExecutionClient
In-memory implementation of DurableExecutionClient for local testing. Stores operations and checkpoint state in memory, simulating the durable execution backend without AWS infrastructure.
  • Constructor Details

    • LocalMemoryExecutionClient

      public LocalMemoryExecutionClient()
  • Method Details

    • checkpoint

      public software.amazon.awssdk.services.lambda.model.CheckpointDurableExecutionResponse checkpoint(String arn, String token, List<software.amazon.awssdk.services.lambda.model.OperationUpdate> updates)
      Description copied from interface: DurableExecutionClient
      Sends a batch of operation updates to the backend.
      Specified by:
      checkpoint in interface DurableExecutionClient
      Parameters:
      arn - the durable execution ARN
      token - the checkpoint token
      updates - the operation updates to send
      Returns:
      the checkpoint response
    • getExecutionState

      public software.amazon.awssdk.services.lambda.model.GetDurableExecutionStateResponse getExecutionState(String arn, String checkpointToken, String marker)
      Description copied from interface: DurableExecutionClient
      Retrieves the current execution state from the backend.
      Specified by:
      getExecutionState in interface DurableExecutionClient
      Parameters:
      arn - the durable execution ARN
      checkpointToken - the checkpoint token
      marker - pagination marker, or null for the first page
      Returns:
      the execution state response
    • getOperationUpdates

      public List<software.amazon.awssdk.services.lambda.model.OperationUpdate> getOperationUpdates()
      Get all operation updates that have been sent to this client. Useful for testing and verification.
    • advanceTime

      public boolean advanceTime()
      Advance all operations (simulates time passing for retries/waits).
      Returns:
      true if any operations were advanced, false otherwise
    • completeChainedInvoke

      public void completeChainedInvoke(String name, OperationResult result)
      Completes a chained invoke operation with the given result, simulating a child Lambda response.
    • getOperationByName

      public software.amazon.awssdk.services.lambda.model.Operation getOperationByName(String name)
      Returns the operation with the given name, or null if not found.
    • getAllOperations

      public List<software.amazon.awssdk.services.lambda.model.Operation> getAllOperations()
      Returns all operations currently stored.
    • toTestResult

      public <O> TestResult<O> toTestResult(DurableExecutionOutput output, TypeToken<O> resultType, SerDes serDes)
      Build TestResult from current state.
    • resetCheckpointToStarted

      public void resetCheckpointToStarted(String stepName)
      Simulate checkpoint failure by forcing an operation into STARTED state
    • simulateFireAndForgetCheckpointLoss

      public void simulateFireAndForgetCheckpointLoss(String stepName)
      Simulate fire-and-forget checkpoint loss by removing the operation entirely
    • getCallbackId

      public String getCallbackId(String operationName)
      Get callback ID for a named callback operation.
    • completeCallback

      public void completeCallback(String callbackId, OperationResult result)
      Simulate external system completing callback.