Class LocalMemoryExecutionClient

java.lang.Object
software.amazon.lambda.durable.testing.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.
    • getAllEvents

      public List<software.amazon.awssdk.services.lambda.model.Event> getAllEvents()
      Get all events in order.
    • getEventsForOperation

      public List<software.amazon.awssdk.services.lambda.model.Event> getEventsForOperation(String operationId)
      Get events for a specific operation.
    • advanceReadyOperations

      public boolean advanceReadyOperations()
      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.
    • reset

      public void reset()
      Clears all operations and events, resetting the client to its initial state.
    • toTestResult

      public <O> TestResult<O> toTestResult(DurableExecutionOutput output)
      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, String result)
      Simulate external system completing callback successfully.
    • failCallback

      public void failCallback(String callbackId, software.amazon.awssdk.services.lambda.model.ErrorObject error)
      Simulate external system failing callback.
    • timeoutCallback

      public void timeoutCallback(String callbackId)
      Simulate callback timeout.