Bird
Raised Fist0
DynamoDBquery~10 mins

Idempotency tokens in DynamoDB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add an idempotency token attribute named 'IdempotencyKey' to the DynamoDB item.

DynamoDB
item = { 'OrderId': '123', 'Amount': 100, 'IdempotencyKey': [1] }
Drag options to blanks, or click blank then click option'
ATrue
B12345
CNone
D'unique-token-123'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a number instead of a string for the token.
Using None or boolean values as tokens.
2fill in blank
medium

Complete the code to include the idempotency token in the DynamoDB PutItem request condition expression to prevent duplicate writes.

DynamoDB
response = table.put_item(Item=item, ConditionExpression='attribute_not_exists([1])')
Drag options to blanks, or click blank then click option'
AOrderId
BIdempotencyKey
CAmount
DTimestamp
Attempts:
3 left
💡 Hint
Common Mistakes
Checking attribute_not_exists on the wrong attribute.
Using attribute names that are not part of the item.
3fill in blank
hard

Fix the error in the code by completing the parameter to generate a unique idempotency token using Python's uuid module.

DynamoDB
import uuid
idempotency_token = [1]
Drag options to blanks, or click blank then click option'
Auuid.uuid4()
Buuid.generate()
Cuuid4()
Duuid.random()
Attempts:
3 left
💡 Hint
Common Mistakes
Calling uuid4() without the uuid prefix.
Using non-existent methods like generate() or random().
4fill in blank
hard

Fill both blanks to complete the DynamoDB update expression that sets the idempotency token only if it does not already exist.

DynamoDB
response = table.update_item(
  Key={'OrderId': '123'},
  UpdateExpression='SET [1] = :token',
  ConditionExpression='attribute_not_exists([2])',
  ExpressionAttributeValues={':token': idempotency_token}
)
Drag options to blanks, or click blank then click option'
AIdempotencyKey
BOrderId
CAmount
DTimestamp
Attempts:
3 left
💡 Hint
Common Mistakes
Using different attribute names in UpdateExpression and ConditionExpression.
Using attributes unrelated to the idempotency token.
5fill in blank
hard

Fill all three blanks to complete the Python dictionary comprehension that creates a map of order IDs to their idempotency tokens, filtering only orders with tokens present.

DynamoDB
idempotency_map = {order['[1]']: order['[2]'] for order in orders if '[3]' in order}
Drag options to blanks, or click blank then click option'
AOrderId
BIdempotencyKey
DAmount
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong attribute names for keys or values.
Filtering on an attribute not related to the token.

Practice

(1/5)
1. What is the main purpose of using idempotency tokens in DynamoDB operations?
easy
A. To encrypt data stored in the database
B. To prevent duplicate writes when the same request is retried
C. To speed up query performance by caching results
D. To automatically backup data at regular intervals

Solution

  1. Step 1: Understand idempotency token role

    Idempotency tokens are unique values sent with requests to ensure the same operation is not applied multiple times.
  2. Step 2: Identify the main benefit in DynamoDB

    This prevents duplicate writes if a request is retried due to network issues or timeouts.
  3. Final Answer:

    To prevent duplicate writes when the same request is retried -> Option B
  4. Quick Check:

    Idempotency tokens prevent duplicates = C [OK]
Hint: Idempotency tokens stop repeated writes on retries [OK]
Common Mistakes:
  • Confusing idempotency tokens with encryption keys
  • Thinking they improve query speed
  • Assuming they trigger backups automatically
2. Which of the following is the correct way to include an idempotency token in a DynamoDB PutItem request using AWS SDK?
easy
A. "IdempotencyToken": "unique-token-value" inside the item attributes
B. Adding IdempotencyToken as a reserved keyword in the table schema
C. Setting IdempotencyToken as a parameter outside the item attributes
D. Using a conditional expression with attribute_not_exists(IdempotencyToken)

Solution

  1. Step 1: Understand how idempotency tokens work in DynamoDB

    They are used with conditional expressions to ensure the item is only created if the token does not exist.
  2. Step 2: Identify correct syntax for conditional check

    The expression attribute_not_exists(IdempotencyToken) prevents overwriting if the token is already present.
  3. Final Answer:

    Using a conditional expression with attribute_not_exists(IdempotencyToken) -> Option D
  4. Quick Check:

    Conditional check with attribute_not_exists = B [OK]
Hint: Use conditional expression attribute_not_exists for idempotency [OK]
Common Mistakes:
  • Placing token inside item without condition causes duplicates
  • Trying to set token outside request parameters incorrectly
  • Assuming token is a reserved schema keyword
3. Given the following DynamoDB PutItem request with idempotency token condition:
{
  "TableName": "Orders",
  "Item": {"OrderId": {"S": "123"}, "IdempotencyToken": {"S": "abc-123"}},
  "ConditionExpression": "attribute_not_exists(IdempotencyToken)"
}

What happens if this request is sent twice with the same token?
medium
A. The first request succeeds; the second fails with a conditional check error
B. Both requests succeed and create duplicate items
C. Both requests fail due to token conflict
D. The second request overwrites the first item silently

Solution

  1. Step 1: Analyze the condition expression effect

    The condition attribute_not_exists(IdempotencyToken) allows the write only if the token is not present.
  2. Step 2: Predict behavior on repeated requests with same token

    The first request writes the item and token. The second request fails because the token now exists, triggering a conditional check failure.
  3. Final Answer:

    The first request succeeds; the second fails with a conditional check error -> Option A
  4. Quick Check:

    First write OK, second fails condition = D [OK]
Hint: Same token blocks second write with condition failure [OK]
Common Mistakes:
  • Assuming both writes succeed causing duplicates
  • Thinking second write silently overwrites
  • Believing both writes fail
4. You wrote this DynamoDB PutItem request with idempotency token:
{
  "TableName": "Payments",
  "Item": {"PaymentId": {"S": "p001"}, "IdempotencyToken": {"S": "token-xyz"}},
  "ConditionExpression": "attribute_not_exists(IdempotencyToken)"
}

But you get a ConditionalCheckFailedException on the first request. What is the likely cause?
medium
A. An item with the same IdempotencyToken already exists in the table
B. The IdempotencyToken attribute is missing from the item
C. The table does not have a primary key defined
D. The ConditionExpression syntax is invalid

Solution

  1. Step 1: Understand the meaning of ConditionalCheckFailedException

    This error means the condition attribute_not_exists(IdempotencyToken) was false, so the token attribute already exists.
  2. Step 2: Identify why the first request fails

    If the token already exists in an item, the condition prevents overwriting, causing the failure.
  3. Final Answer:

    An item with the same IdempotencyToken already exists in the table -> Option A
  4. Quick Check:

    Token exists causes condition failure = A [OK]
Hint: Condition fails if token already exists in table [OK]
Common Mistakes:
  • Assuming missing token causes this error
  • Thinking primary key absence triggers this error
  • Believing condition syntax is wrong
5. You want to design a DynamoDB table to support idempotent order creation using tokens. Which approach best ensures no duplicate orders are created when clients retry requests?
hard
A. Use a composite primary key with OrderId and IdempotencyToken and allow overwrites
B. Use OrderId as the primary key and store IdempotencyToken as a unique attribute with a conditional write checking attribute_not_exists(IdempotencyToken)
C. Use IdempotencyToken as the primary key and reject writes if the token exists
D. Do not store tokens; rely on client-side checks to avoid duplicates

Solution

  1. Step 1: Consider uniqueness enforcement for idempotency

    Using IdempotencyToken as the primary key ensures each token is unique and prevents duplicates at the database level.
  2. Step 2: Evaluate other options

    Use OrderId as the primary key and store IdempotencyToken as a unique attribute with a conditional write checking attribute_not_exists(IdempotencyToken) risks duplicates if tokens are not primary keys. Use a composite primary key with OrderId and IdempotencyToken and allow overwrites allows overwrites, breaking idempotency. Do not store tokens; rely on client-side checks to avoid duplicates relies on unreliable client checks.
  3. Final Answer:

    Use IdempotencyToken as the primary key and reject writes if the token exists -> Option C
  4. Quick Check:

    Primary key on token ensures uniqueness = A [OK]
Hint: Make token primary key to enforce uniqueness [OK]
Common Mistakes:
  • Storing token as non-key attribute without condition
  • Allowing overwrites with composite keys
  • Relying only on client-side checks
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard