SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
DVA-C03 · Domain 1

Development with AWS Services practice questions

Development with AWS Services is worth 30% of the DVA-C03 exam — the heaviest of the 4 domains. Writing application code on AWS: decoupled and event-driven designs, APIs and SDKs, streaming and serialization, AI-assisted development and managed AI services, Lambda configuration and integrations, and choosing and configuring data stores (DynamoDB, S3, ElastiCache, RDS). Official weighting 30%. 6 fully worked examples are further down this page, answers included.

Exam weight
30%
the heaviest of the 4 domains
Questions
144
across 3 topics
Free, no account
5/day
a free account allows 30 a day
Explanations
Every option
right and wrong

Build a practice session

5 free questions left today.

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across 1 of 4 domains, in Learn mode.

Review what you missed

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

6 sample Development with AWS Services questions, fully explained

Questions from the DVA-C03 bank mapped to domain 1, with the answer key and the reasoning behind every option. None of them repeat the examples on the main DVA-C03 practice page.

Question 1Development with AWS Services

A developer exposes a report feature through an Amazon API Gateway REST API that uses a Lambda non-proxy (custom) integration. The function builds a PDF in 2-4 minutes and emails a link when it is done. Clients receive 504 errors, although every report is eventually emailed. The client only needs an acknowledgement that the request was accepted. Which change requires the least code?

Choose one.

  • a
    Add an X-Amz-Invocation-Type header with the static value 'Event' to the integration request Correct

    With this header, API Gateway invokes the function asynchronously: Lambda queues the event and API Gateway returns immediately, while the function keeps running and sends the email.

  • b
    Raise the function timeout to 15 minutes and keep the synchronous integration with Lambda

    The function already finishes. The 504 comes from the API Gateway integration timeout, which a longer function timeout does not change.

  • c
    Switch to a Lambda proxy integration and return a 202 status code from the function at the end

    The invocation stays synchronous, so the 202 would only be sent after the multi-minute build, still past the integration timeout.

  • d
    Turn on stage caching with a TTL longer than the time that the function needs to build a report

    Caching only helps repeated identical requests. The first request still waits for the slow synchronous invocation and times out.

The concept

API Gateway can invoke a Lambda non-proxy integration asynchronously so the API returns at once.

Why that’s the answer

The client only needs an acknowledgement, so the work does not belong in the request/response path. API Gateway's integration timeout (29 seconds by default) is well below the build time, so any synchronous design returns 504. In a Lambda non-proxy integration, mapping the X-Amz-Invocation-Type header to 'Event' makes API Gateway use asynchronous invocation, which returns at once and needs no function code change. A longer Lambda timeout or a 202 sent after the build both leave the call synchronous.

How to reason it out
  1. Find where the 504 comes from: the API Gateway integration timeout, not Lambda.
  2. Note that the client needs only an acknowledgement, so asynchronous processing fits.
  3. Recall that a non-proxy Lambda integration can request asynchronous invocation through the X-Amz-Invocation-Type header.
  4. Reject changes that keep the invocation synchronous.

Exam tip: Long work behind API Gateway: invoke it asynchronously and acknowledge, rather than make the client wait.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 2Development with AWS Services

A checkout API runs one Lambda function that charges the card, adds loyalty points, sends a receipt email and records analytics. The mobile app must show the shopper at once whether the payment succeeded. The other three steps can lag by several minutes. When the email provider is slow, checkout latency spikes. Which design meets the requirements?

Choose one.

  • a
    Send the checkout, payment included, to an SQS queue and return HTTP 202 to the app at once

    This removes the latency, but the app no longer learns whether the payment succeeded, which breaks the stated requirement.

  • b
    Keep the four steps in the API call and add backoff with jitter to the email client's retries

    Backoff makes the email step more reliable but even slower when the provider struggles, and it still runs inside the shopper's request.

  • c
    Take payment in the API call, then publish an EventBridge event that the remaining steps consume Correct

    Payment stays synchronous, so the app gets its result at once, and the slow, non-urgent steps run asynchronously as event consumers that cannot delay checkout.

  • d
    Start a Step Functions Standard workflow for the four steps and return its execution ARN

    Starting a Standard workflow is asynchronous, so the app gets an execution ARN instead of the payment outcome.

The concept

Split a request into the part the caller must wait for and the parts that can run later.

Why that’s the answer

Two requirements pull in different directions: the payment result is needed immediately (synchronous), while the other steps tolerate delay and must not affect latency (asynchronous). Only the split design satisfies both. Making everything asynchronous (SQS or a Standard workflow) fixes latency but loses the immediate payment result; keeping everything synchronous keeps the slow email step on the critical path.

How to reason it out
  1. Mark which outputs the caller needs in the response: only the payment result.
  2. Move every step not needed in the response off the request path.
  3. Check each option against both requirements: immediate payment result and no email-driven latency.
  4. Prefer the design that is synchronous only where the caller truly waits.

Exam tip: Synchronous only for what the caller must see now; everything else becomes an event.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 3Development with AWS Services

An order service puts OrderPlaced events on a custom Amazon EventBridge event bus. A fraud-check Lambda function must run only for orders whose detail.total is greater than 1000 and whose detail.region is "EU". The team does not want to change the order service or add filtering code to the function. What should the developer configure with the fewest additional resources?

Choose one.

  • a
    An event pattern on the rule that matches detail.region and a numeric range on detail.total Correct

    EventBridge event patterns support exact matches and numeric comparisons, so only matching events invoke the target and no code changes are needed.

  • b
    An input transformer on the rule target that removes the orders whose detail.total is too low

    An input transformer reshapes the event sent to the target. It cannot stop an event from being delivered.

  • c
    A filter on a Lambda event source mapping that reads OrderPlaced events from the event bus

    Event source mappings poll sources such as SQS, Kinesis and DynamoDB Streams. EventBridge pushes to its targets, so there is no event source mapping to filter.

  • d
    A subscription filter policy on an Amazon SNS topic placed between the bus and the function

    A subscription filter policy could filter these orders, but it adds a topic and a subscription, while the EventBridge rule can filter on its own with no new resources.

The concept

EventBridge rules filter events with event patterns before they reach any target.

Why that’s the answer

Filtering in EventBridge happens in the rule's event pattern, which can match field values and numeric ranges such as greater than 1000. Matching events go to the target; others are never delivered. An input transformer only changes the payload, Lambda event source mapping filters apply to poll-based sources, and an SNS topic with a filter policy would work but adds resources the rule does not need.

How to reason it out
  1. Note that filtering must happen without publisher or function code changes.
  2. Recall that an EventBridge rule's event pattern decides which events match.
  3. Confirm event patterns support numeric comparisons.
  4. Reject features that transform payloads or belong to other services.

Exam tip: Filter EventBridge events in the rule's event pattern, not in the target's code.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 4Development with AWS Services

An EventBridge rule on a custom bus sends shipment events to an API destination at a partner. Several rules on the bus route the same events to internal targets that process them correctly. The partner's endpoint was down for 30 hours, and the events sent during the outage were lost. The developer must keep events that the partner target fails to receive so they can be reprocessed later, without re-sending events to the internal targets. What should the developer do?

Choose one.

  • a
    Attach an Amazon SQS dead-letter queue to the partner rule's API destination target Correct

    When retries are exhausted or the maximum event age passes, EventBridge sends the undelivered event to the target's dead-letter queue, where it can be reprocessed later.

  • b
    Raise the maximum event age in the partner destination's retry policy to 48 hours

    The retry policy's maximum event age can be set to at most 24 hours, so a 30-hour outage would still exceed it.

  • c
    Enable an archive on the event bus and replay the outage window's events to the bus's rules

    A replay sent to the bus's rules re-delivers the events to the internal targets as well, so they would process the same events a second time.

  • d
    Add a rule with the partner rule's event pattern that targets a CloudWatch Logs log group

    This logs every matching event, including those delivered successfully, and gives no record of which ones the partner failed to receive.

The concept

EventBridge target retry policy plus a dead-letter queue keeps events that a target could not receive.

Why that’s the answer

EventBridge retries delivery to a target with backoff for up to 24 hours (the configurable maximum event age) and then drops the event, unless the target has a dead-letter queue. The DLQ captures exactly the events that failed for that target. Replaying an archive to the bus's rules would duplicate work for the internal targets. A 48-hour event age is outside the allowed range, and a log of every matching event does not show which deliveries failed.

How to reason it out
  1. Recall EventBridge's retry window: at most 24 hours of maximum event age.
  2. Recognise that a 30-hour outage needs somewhere for undeliverable events to go.
  3. Compare a DLQ (only failed events for one target) with a replay to the bus's rules (re-sends events to their targets).
  4. Apply the constraint that internal targets must not receive duplicates.

Exam tip: Failed deliveries for one target go to that target's DLQ, where they can be reprocessed later.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 5Development with AWS Services

Hundreds of Lambda instances write to the same Amazon DynamoDB table. When a write is throttled, each instance retries. CloudWatch metrics show the retries arriving in synchronized waves that throttle again. Which retry strategy should the developer use?

Choose one.

  • a
    Exponential backoff that adds a random jitter to each delay Correct

    Growing delays reduce pressure on the table, and random jitter spreads the clients' retries out so they stop arriving together.

  • b
    Exponential backoff with an identical delay schedule per client

    Delays grow, but clients that were throttled together still retry at the same moments, so the waves continue.

  • c
    A fixed one-second delay between attempts, up to ten attempts

    A fixed delay keeps every client on the same rhythm and does not reduce pressure as throttling continues.

  • d
    More maximum attempts with the delays left exactly unchanged

    More attempts only prolong the synchronized waves; the timing problem stays.

The concept

Jitter breaks up synchronized retries; exponential backoff reduces their rate.

Why that’s the answer

The symptom is synchronized retry waves. Exponential backoff alone grows the delay but keeps clients in lockstep because they all start from the same moment with the same schedule. Adding random jitter desynchronizes them. AWS SDKs use exponential backoff with jitter in their standard retry behavior for this reason.

How to reason it out
  1. Read the symptom: retries arrive together and throttle again.
  2. Recall that backoff lowers the retry rate but does not desynchronize clients.
  3. Add randomness (jitter) to spread retries over time.

Exam tip: Backoff slows retries down; jitter spreads them out. Use both.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

Question 6Development with AWS Services

A nightly batch job written with the AWS SDK for Python calls an AWS API thousands of times. The SDK is configured with the standard retry mode, but the job still fails with ThrottlingException after the retries are used up. The developer wants the SDK itself to slow down its request rate when throttling occurs, without writing custom retry code. What should the developer do?

Choose one.

  • a
    Keep the standard retry mode and raise the maximum attempts to 10

    More attempts give each call more chances, but the client keeps sending at the same overall rate, so throttling persists.

  • b
    Set the SDK's retry mode to legacy in the client configuration

    Legacy mode is the older retry behavior and has no client-side rate limiting.

  • c
    Wrap each API call in a loop that sleeps for one second after errors

    This is custom retry code, which the developer wants to avoid, and a fixed sleep does not adapt to throttling.

  • d
    Set the SDK's retry mode to adaptive in the client configuration Correct

    Adaptive mode includes everything in standard mode and adds a client-side rate limiter that lowers the request rate when the service throttles.

The concept

AWS SDK retry modes: standard retries with backoff; adaptive also limits the client's own send rate.

Why that’s the answer

Standard mode retries with exponential backoff and jitter, but it does not reduce the overall rate at which the client starts new requests. Adaptive mode adds a client-side token-bucket rate limiter that reacts to throttling responses, which is what a high-volume batch job needs. It is set in configuration (for example retry_mode in a botocore Config or AWS_RETRY_MODE), so no retry code is written.

How to reason it out
  1. Note that retries alone are already failing.
  2. Identify the need: the client must slow its request rate.
  3. Recall that only the adaptive retry mode adds client-side rate limiting.
  4. Reject solutions that require hand-written retry loops.

Exam tip: Throttled even with retries? Adaptive retry mode makes the SDK slow down its own request rate.

DVA-C03 Application Development: Decoupling, APIs, SDKs, Events, Streams and AI — the lesson that teaches this.

What DVA-C03 domain 1 tests, topic by topic

The official exam guide breaks Development with AWS Services into 3 topics. The question bank follows the same split, so a weak topic shows up as a cluster of misses you can go back and read.

Published DVA-C03 practice questions per topic in Development with AWS Services
TopicWhat it coversQuestions
Develop code for applications that are hosted on AWSOfficial DVA-C03 Task 1.1 skills: (1) Identify tightly coupled and loosely coupled systems, and use AWS services to decouple system components. (2) Choose between synchronous and asynchronous patterns (for example, Amazon API Gateway synchronous invocation, Amazon SQS based asynchronous processing, Amazon EventBridge event-driven workflows). (3) Create and maintain fault-tolerant and resilient applications (for example, by configuring retry with backoff, graceful degradation). (4) Create, extend, and maintain APIs (for example, configure response/request transformations, by enforcing validation rules). (5) Develop code that interacts with AWS services by using APIs and AWS SDKs. (6) Manage streaming data by using AWS services. (7) Serialize and deserialize data to integrate application code with AWS services. (8) Implement event-driven patterns (for example, by using EventBridge, Amazon S3 Event Notifications, Amazon SQS, Amazon SNS). (9) Use AI-assisted development tools to generate, review, and optimize code (for example, spec-driven code generation, automated code reviews, intelligent code completion, refactoring suggestions, security scanning). (10) Integrate managed AWS AI services into applications.48
Develop code for AWS LambdaOfficial DVA-C03 Task 1.2 skills: (1) Grant Lambda functions access to private resources in VPCs. (2) Configure Lambda functions by defining environment variables and parameters (for example, memory, concurrency, timeout, runtime, handler, layers, extensions). (3) Handle event lifecycles and errors (for example, by using Lambda destinations, dead-letter queues). (4) Integrate Lambda functions with AWS services by using code, event source mappings, and destinations (for example, API Gateway, Amazon DynamoDB).48
Use data stores during application developmentOfficial DVA-C03 Task 1.3 skills: (1) Manage data lifecycles (for example, by using Amazon S3 Lifecycle policies, TTL, retention periods). (2) Choose AWS data stores (for example, Amazon ElastiCache, DynamoDB, Amazon S3, Amazon RDS) based on access patterns. (3) Determine the appropriate caching solution based on data store selection. (4) Configure DynamoDB to support applications (for example, by selecting high-cardinality partition keys, applying read consistency models, performing query and scan operations, by defining keys, attributes, and indexes).48
Total144

Revise Development with AWS Services before you drill it

Other DVA-C03 domains

Development with AWS Services: your questions

Development with AWS Services is domain 1 of the DVA-C03 exam guide and carries 30% of the scored content — the heaviest of the 4 domains. On a 65-question paper that works out to roughly 20 questions, though AWS does not publish an exact per-domain count and individual exam forms vary.

Source

The domain weight and topic list on this page come from the official DVA-C03 exam guide.