DVA-C03 · LESSON 1

Development with AWS Services30% · 3 topics

Use bounded backoff for transient SDK errors. Expect SQS redelivery and protect order writes with conditional idempotency. Choose DynamoDB keys and indexes from access patterns; distinguish Query from Scan.

1.1Implement events and data operations correctly

Concept

Use bounded backoff for transient SDK errors. Expect SQS redelivery and protect order writes with conditional idempotency. Choose DynamoDB keys and indexes from access patterns; distinguish Query from Scan.

How it works / steps

  1. Write requirements and success criteria first.
  2. Use a test environment and retain success and failure evidence.
  3. Review the result, then check your decisions with domain practice below.

Workplace example

Submit a duplicate order event and inspect stored records and retry results.

Common confusions and exam tips

Mini quiz

Q1. You want to scale a web app on EC2 horizontally with Auto Scaling. Login state is stored in server memory, so users are logged out when the number of servers changes. What is the most appropriate fix?

  1. Store session data in ElastiCache or DynamoDB and make the servers stateless
  2. Ask users to change browser settings so login state is not stored
  3. Disable ALB health checks so Auto Scaling does not replace servers
  4. Stop using Auto Scaling and run on a single largest instance
Show answer and explanation

Answer: A Store session data in ElastiCache or DynamoDB and make the servers stateless

Keeping sessions in an external data store lets any server handle the same session, so you can freely add and remove servers. Sticky sessions are only a temporary workaround.

Q2. An API that accepts image uploads times out because creating thumbnails takes a long time. What is the most appropriate improvement?

  1. Extend the API timeout to an hour and have users wait
  2. Respond as soon as the upload is accepted and create thumbnails asynchronously with SQS or similar
  3. Stop creating thumbnails and display the original images
  4. Change the API server to the largest instance type and keep creating thumbnails synchronously
Show answer and explanation

Answer: B Respond as soon as the upload is accepted and create thumbnails asynchronously with SQS or similar

Decoupling slow processing from intake and running it asynchronously speeds up responses and lets the processing side scale independently.

Reference links

1.2Design scalable and loosely coupled architectures

Concept

Loose coupling places SQS (queues), SNS (notifications) or EventBridge (events) between components so that delays or failures in one do not spread to another. Make processing stateless, keep sessions in ElastiCache or DynamoDB, and scale horizontally with Auto Scaling. Serverless (Lambda, API Gateway, Step Functions) and containers (ECS, EKS, Fargate) are also options.

How it works / steps

  1. Turn synchronous calls into asynchronous processing with SQS where appropriate
  2. To deliver one event to multiple processes, go from SNS to multiple SQS queues (fan-out)
  3. Make the app stateless and keep sessions externally
  4. Auto Scale on metrics such as SQS queue length
  5. Control multi-step processing with Step Functions and define retries on failure

Workplace example

An order is published to SNS and fanned out to inventory, billing and notification SQS queues so each process scales independently. Even if billing stops, orders remain in the queue.

Common confusions and exam tips

Mini quiz

Q1. You are designing asynchronous processing with queues. Choose the incorrect statement about Amazon SQS.

  1. Messages remain in the queue for the retention period until a consumer deletes them
  2. It absorbs differences in processing speed between senders and receivers, enabling loose coupling
  3. A dead-letter queue can set aside messages that keep failing
  4. Standard queues always strictly guarantee the order in which messages were sent
Show answer and explanation

Answer: D Standard queues always strictly guarantee the order in which messages were sent

Standard queues provide best-effort ordering. Use a FIFO queue if strict ordering is required.

Q2. You are building serverless processing. Which statement about Lambda limits or billing is incorrect?

  1. It can run in response to events from many services such as S3, SQS and EventBridge
  2. It is billed by number of invocations and duration (unit price based on memory size)
  3. There is no limit on execution time per invocation, so multi-hour batches can run as is
  4. It can be configured to access resources inside a VPC
Show answer and explanation

Answer: C There is no limit on execution time per invocation, so multi-hour batches can run as is

The maximum Lambda execution time is 15 minutes. Split long processing with Step Functions, or use ECS/Fargate or AWS Batch.

Reference links

1.3Determine high-performing database solutions

Concept

Scale reads with RDS and Aurora read replicas (up to 15 for Aurora), cache frequent reads with ElastiCache (Redis, Memcached), and get microsecond DynamoDB reads with DAX. Use RDS Proxy for connection surges and Aurora Serverless v2 for unpredictable load; for large-scale key-value workloads, DynamoDB partition key design determines performance.

How it works / steps

  1. Check the read/write ratio and latency requirements
  2. For read-heavy workloads, use read replicas or a cache
  3. Pool large numbers of connections from Lambda with RDS Proxy
  4. For DynamoDB, choose a partition key that avoids skewed access and add DAX if needed
  5. For low-latency global reads, use Aurora Global Database or DynamoDB global tables

Workplace example

Reads of product detail pages account for 90% of DB load, so cache the results in ElastiCache and write inventory updates to the primary.

Common confusions and exam tips

Mini quiz

Q1. How can an order be created in DynamoDB only if its ID is absent?

  1. Use TTL deletion time for duplicates
  2. Conditional write with ConditionExpression
  3. Unconditional PutItem after a read
  4. Count Scan results to check existence
Show answer and explanation

Answer: B Conditional write with ConditionExpression

An atomic conditional write avoids the read-then-write race.

Q2. You want to improve DynamoDB performance. Besides the partition key (customer ID), you want to search by order date. Currently the whole table is scanned, which is slow. Which is the best fit?

  1. On-demand capacity mode
  2. DynamoDB Streams
  3. Global secondary index (GSI)
  4. DynamoDB Accelerator (DAX)
Show answer and explanation

Answer: C Global secondary index (GSI)

A GSI enables queries with a different partition key and sort key, avoiding scans.

Reference links

Lessons are written by this site based on public information and do not guarantee exam content. Product specifications change, so check the latest information at the reference links.

Notes (unofficial, original questions, no pass guarantee)