Courseiva
Cloud ConceptsmediumMultiple ChoiceObjective-mapped

CLF-C02 Cloud Concepts Practice Question

A company's application has components that tightly depend on each other, making it difficult to scale individual components or update one without affecting others. The architects want to refactor to a more resilient architecture. What AWS design principle addresses this?

⚠ Common exam trap

A common mix-up: candidates confuse high availability (redundancy) with architectural decoupling, assuming that adding more instances of tightly coupled components solves the scaling and update problem, when in fact loose coupling is required to break the dependencies.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Implement loose coupling through asynchronous messaging between components

Loose coupling through asynchronous messaging (e.g., using Amazon SQS or Amazon SNS) decouples components so that they can scale independently and updates can be made to one component without affecting others. This directly addresses the tight dependency described in the question, where scaling or updating one component impacts the entire application. By introducing message queues or pub/sub patterns, components communicate indirectly, improving resilience and fault isolation.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Design for failure by adding redundant instances

    Why it's wrong here

    Adding redundant instances—for example, deploying multiple EC2 instances behind an Application Load Balancer—improves raw availability but does not break the synchronous dependency between components. If component A directly calls component B and B fails, every redundant copy of A will generate more failed requests and retries, potentially overwhelming B or exhausting connection pools. Redundancy is a useful fault-tolerance tactic, but it does not isolate failures or decouple the components' lifecycles, so the architectural coupling issue remains unresolved.

  • Implement loose coupling through asynchronous messaging between components

    Why this is correct

    Loose coupling via asynchronous messaging—such as Amazon SQS queues, SNS topics, or EventBridge event buses—allows components to interact without requiring both to be online at the same moment. A producer sends a message to a durable queue, and the consumer processes it later, with the message persisting through transient failures and enabling automatic retries. This design isolates failures because a consumer outage does not block the producer, and each component can be scaled, deployed, and updated independently. It is the core pattern for building resilient, fault-isolated microservices on AWS.

  • Use larger instance types to handle all components on fewer servers

    Why it's wrong here

    Consolidating multiple components onto a smaller number of larger instance types intensifies coupling by placing them in a single failure domain. If that one instance fails, all the components running on it go down at once, and the system loses more functionality in a single event compared to a distributed deployment. Vertical scaling also hits hard instance-size limits and does not introduce any interface or message boundary between components, so the underlying synchronous, tightly coupled interaction remains unchanged. This approach is the opposite of the isolation required to prevent cascading failures.

  • Enable AWS Auto Scaling to handle traffic variability

    Why it's wrong here

    AWS Auto Scaling adjusts the number of instances in response to demand, which helps handle traffic variability but does not alter how components communicate. In a tightly coupled application—for example, one that relies on synchronous HTTP calls with no circuit breaker or timeout—Auto Scaling cannot prevent a dependency failure from propagating to every connected client. Scaling out adds capacity or replicas, but the coupling problem persists even at larger scales, and might even be masked until a real dependency outage occurs. Auto Scaling is meant to complement, not replace, an intentionally decoupled architecture.

About these practice questions

Courseiva writes every CLF-C02 question from scratch — 988 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This CLF-C02 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CLF-C02 exam.