Courses Tools Exam Guides Pricing For Teams
Sign Up Free
AWS 7 min read · 1,289 words

AWS Certified Developer Associate - Similar Answer Options Confusion

Expert guide: candidate confused by near-identical answer choices. Practical recovery advice for AWS Certified Developer Associate candidates.

Why AWS DVA-C02 Answer Choices Look Identical—And How To Tell Them Apart

You’ve studied the material. You understand Lambda, DynamoDB, and IAM fundamentals. Yet on practice exams, you keep second-guessing yourself between answer options that seem almost identical. The AWS Certified Developer Associate exam is deliberately designed this way, and it’s costing you points. This article explains the exact mechanism behind this confusion and provides a tested framework to eliminate it.

Direct Answer

The AWS Certified Developer Associate (DVA-C02) exam uses near-identical answer options to test your precision in understanding service differentiators—not just surface-level knowledge. AWS services like SQS and SNS, or Lambda and EC2, perform similar functions but differ in critical ways: message delivery guarantees, scaling behavior, consistency models, and invocation patterns. Candidates confuse these because they memorize use cases rather than architectural constraints. The exam separates qualified developers from those who simply recognize keywords by forcing you to distinguish between subtly different architectural implications. Understanding the why behind each service’s design choice—not just what it does—is what separates passing scores from failing ones.

Why This Happens to AWS Certified Developer Associate Candidates

Most candidates studying for DVA-C02 follow a predictable pattern: they watch videos, read service descriptions, and create flashcards of “SQS is for decoupling” or “DynamoDB scales horizontally.” This creates surface-level familiarity without precision.

When you encounter a question like “Your application needs to process messages with guaranteed exactly-once delivery and long visibility timeouts,” you might be torn between SQS (Standard queue) and SQS (FIFO queue). Both are correct types of answers. But the exam is asking for the specific choice that matches the precise constraint mentioned.

Similarly, when Lambda, API Gateway, and CloudFormation all appear in the same scenario, candidates select based on partial pattern matching rather than architectural reasoning. You recognize “API Gateway” and choose it because APIs are involved, missing that the question specifically asks about request transformation (API Gateway) versus function invocation (Lambda) versus infrastructure definition (CloudFormation).

The confusion intensifies across these topics:

  • Lambda vs. EC2: Both compute, but Lambda is event-driven and serverless; EC2 requires instance management and network configuration.
  • DynamoDB vs. RDS: Both store data, but DynamoDB provides predictable latency and horizontal scaling; RDS provides relational queries and ACID transactions.
  • SQS vs. SNS: Both are message services, but SQS is queue-based (pull); SNS is topic-based (push).
  • IAM policies at different scopes: Inline policies, managed policies, and resource-based policies all grant permissions, but in different contexts.
  • S3 vs. EBS: Both are storage, but S3 is object storage (regional); EBS is block storage (instance-attached).
  • VPC and security groups vs. NACLs: Both control traffic, but security groups are stateful and instance-level; NACLs are stateless and subnet-level.

This is intentional exam design. AWS is not testing whether you can remember that “Lambda exists.” It’s testing whether you can architect correctly under pressure.

The Root Cause: Lack of Precision in Understanding Service Differentiators

The fundamental problem is that candidates treat AWS services as a list of features rather than as solutions to specific architectural problems.

When you study “Lambda,” you learn it executes code in response to events. When you study “API Gateway,” you learn it creates REST APIs. These are feature descriptions, not architectural differentiators.

The DVA-C02 exam measures whether you understand why these services exist with their specific constraints:

Lambda was designed to eliminate the overhead of server management and billing. This means it has a hard timeout (15 minutes), cold starts are acceptable for certain workloads, and you don’t think about underlying compute capacity. An answer choice that suggests using Lambda for a continuous 24/7 data processing job is wrong—not because Lambda can’t do it, but because it violates the service’s fundamental design purpose.

DynamoDB was designed for applications requiring predictable, single-digit millisecond latency at any scale. This means it uses eventual consistency by default, doesn’t support complex joins, and requires you to think about partition keys. An answer suggesting DynamoDB for complex analytical queries over 50 tables is wrong because it misses DynamoDB’s constraint: it optimizes for single-item or small batch operations, not cross-table analytics.

SQS (Standard) was designed for high-throughput, best-effort message delivery. This means at-least-once delivery (possible duplicates), no ordering guarantees, and high throughput. If the scenario specifies “no duplicate processing allowed,” Standard SQS becomes wrong—you need FIFO.

API Gateway was designed to be the front door for applications, handling request/response transformation, authentication, rate limiting, and routing. It’s not a compute service; it delegates execution to Lambda or backend services. If the scenario asks “how do you invoke Lambda functions,” the answer isn’t “use API Gateway”—it’s “invoke directly” or “use API Gateway if you need HTTP exposure.”

Candidates confuse these services because they skip the architectural constraint and jump to the feature list. The exam specifically exploits this by writing scenarios where multiple services could technically work, but only one matches the stated constraints.

How the AWS Certified Developer Associate Exam Actually Tests This

The DVA-C02 exam uses a predictable structure for these confusion questions:

  1. The scenario establishes explicit constraints (consistency requirements, throughput expectations, latency targets, availability needs, cost optimization, or security requirements).
  2. The correct answer matches all constraints. Wrong answers violate at least one constraint, often in subtle ways.
  3. Wrong answers are designed to appeal to partial pattern matching. They contain keywords from the scenario and describe valid AWS services—just not the right one for these specific constraints.

The exam is testing your ability to reason under constraint, not recall facts.

Example scenario:

Your team is building an e-commerce platform that processes payment confirmations. Each confirmation must trigger exactly one charge against the customer’s account, with no duplicates under any circumstances. Confirmations arrive at a rate of 50 per second during peak times. You need guaranteed ordering: charges must process in the order they were received. Which approach best meets these requirements?

A) Use an SQS Standard queue to buffer confirmations, with Lambda polling every 10 seconds.

B) Use an SQS FIFO queue with a message group ID set to the customer account ID, triggering Lambda via SQS event mapping.

C) Invoke Lambda directly from the payment service API for each confirmation, storing processed IDs in DynamoDB with a global secondary index.

D) Use SNS to broadcast confirmations to multiple subscribers, including a Lambda function that deduplicates using DynamoDB.

Why candidates get confused:

  • A is wrong because SQS Standard doesn’t guarantee ordering or exactly-once delivery. The word “queue” makes it attractive.
  • C seems right (direct invocation, DynamoDB for tracking) but misses that direct invocation has no built-in retry logic or ordering guarantee. If Lambda fails mid-execution, the charge might be lost or duplicated.
  • D is wrong because SNS is for broadcasting; it doesn’t guarantee order or exactly-once semantics.
  • B is correct because FIFO guarantees ordering and exactly-once delivery within a message group. The message group ID (customer ID) ensures all payments for one customer process sequentially, eliminating race conditions. Lambda’s event mapping provides automatic retry logic.

Most candidates choose A or C because they recognize the services mentioned, without reasoning through the constraint chain: ordering + exactly-once + high throughput = FIFO + partition by customer.

How to Fix This Before Your Next Attempt

1. Build a Constraint-Based Decision Matrix

Stop memorizing service descriptions. Instead, create a matrix with services on one axis and architectural constraints on the other:

Consistency Model: DynamoDB (eventual by default), RDS (strong ACID), S3 (eventual). Ordering Guarantees: SQS FIFO (yes), SQS Standard (no), SNS (no), Lambda (no). Exactly-Once Semantics: SQS FIFO (yes), Lambda (at-least-once), API Gateway (stateless, delegates). Latency Profile: Lambda (milliseconds but with cold start risk), EC2 (predictable if warmed), DynamoDB (single-digit milliseconds), RDS (depends on query complexity). Scaling Behavior: Lambda (automatic

Ready to pass?

Start AWS Practice Exam on Certsqill →

1,000+ exam-accurate questions, AI Tutor explanations, and a performance dashboard that shows exactly which domains to fix.