nerdexam
Amazon

DVA-C02 · Question #480

In a move toward using microservices, a company's management team has asked all development teams to build their services so that API requests depend only on that service's data store. One team is bui

The correct answer is D. Use Amazon DynamoDB Streams to deliver all changes from the Accounts database to the. DynamoDB Streams is the simplest native mechanism to capture and propagate item-level changes from one DynamoDB table to another service in near-real time without tight coupling.

Submitted by satoshi_tk· Mar 5, 2026Development with AWS Services

Question

In a move toward using microservices, a company's management team has asked all development teams to build their services so that API requests depend only on that service's data store. One team is building a Payments service which has its own database; the service needs data that originates in the Accounts database. Both are using Amazon DynamoDB. What approach will result in the simplest, decoupled, and reliable method to get near-real time updates from the Accounts database?

Options

  • AUse AWS Glue to perform frequent ETL updates from the Accounts database to the Payments
  • BUse Amazon ElastiCache in Payments, with the cache updated by triggers in the Accounts
  • CUse Amazon Data Firehose to deliver all changes from the Accounts database to the Payments
  • DUse Amazon DynamoDB Streams to deliver all changes from the Accounts database to the

How the community answered

(15 responses)
  • A
    13% (2)
  • B
    7% (1)
  • D
    80% (12)

Why each option

DynamoDB Streams is the simplest native mechanism to capture and propagate item-level changes from one DynamoDB table to another service in near-real time without tight coupling.

AUse AWS Glue to perform frequent ETL updates from the Accounts database to the Payments

AWS Glue ETL jobs run on a schedule and are batch-oriented, meaning they cannot provide true near-real-time updates and introduce unnecessary complexity for a simple change-propagation use case.

BUse Amazon ElastiCache in Payments, with the cache updated by triggers in the Accounts

Using ElastiCache updated by triggers in the Accounts database creates coupling because the Accounts database must know about the Payments service's cache, violating the microservices independence requirement.

CUse Amazon Data Firehose to deliver all changes from the Accounts database to the Payments

Amazon Data Firehose is designed to stream data to destinations like Amazon S3 or Redshift, not to another DynamoDB table, and would require additional transformation and loading logic.

DUse Amazon DynamoDB Streams to deliver all changes from the Accounts database to theCorrect

DynamoDB Streams captures every item-level modification (INSERT, MODIFY, REMOVE) as an ordered log of changes, which a Lambda function or consumer can process to keep the Payments service data store in sync. This approach is natively integrated with DynamoDB, requires no additional compute infrastructure to manage, and keeps services decoupled because the Accounts service does not call the Payments service directly.

Concept tested: DynamoDB Streams for cross-service change propagation

Source: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html

Community Discussion

No community discussion yet for this question.

Full DVA-C02 Practice