AWS IoT RoboRunner eventual consistency - AWS IoT RoboRunner

AWS IoT RoboRunner eventual consistency

AWS IoT RoboRunner is an eventually consistent system. It is possible to receive a ResourceNotFoundException or ConflictException when performing sequential operations. For example, a ResourceNotFoundException may be thrown when calling DeleteSite immediately after calling CreateSite, and a ConflictException may be thrown when calling DeleteFleet immediately after deleting all workers associated with the fleet.

We recommend that you configure a retry strategy on your AWS IoT RoboRunner clients so that failures are automatically retried. You should expect no more than a 2-second delay when waiting for the system to converge.

The following example shows how to configure the AWS IoT RoboRunner Java client to use a default retry policy on any error. For additional information, see Error retries and exponential backoff in AWS.

AWSIoTRoboRunnerClientBuilder.standard() .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration( "https://iotroborunner.us-east-1.amazonaws.com", "us-east-1") .withClientConfiguration(ClientConfiguration().withRetryPolicy(ClientConfiguration.DEFAULT_RETRY_POLICY)) .build();