โ† All CPA Flashcard Decks

System Architecture & Design Flashcards

7 cards from real CPA practice questions. Tap to flip, then mark Knew It or Still Learning โ€” missed cards come back until you master them.

Read the first 7 System Architecture & Design flashcards as text
  1. What is database sharding?

    Answer: Partitioning a database horizontally across multiple servers

    Sharding splits a large database into smaller partitions (shards), each stored on a separate server, distributing the load and improving scalability.

  2. Which of the following is a key characteristic of event-driven architecture?

    Answer: Components react to events published to a message broker or bus

    In event-driven architecture, components (producers) emit events to a broker, and other components (consumers) react to those events asynchronously, enabling loose coupling.

  3. What is the main trade-off when choosing an eventually consistent system over a strongly consistent one?

    Answer: Temporary inconsistency in exchange for better availability and partition tolerance

    Eventual consistency accepts that replicas may temporarily differ, gaining higher availability and fault tolerance, which is the CAP theorem trade-off.

  4. In software architecture, what is a 'facade'?

    Answer: A simplified interface over a complex subsystem

    The Facade design pattern provides a simplified, unified interface to a complex set of interfaces or subsystems, reducing client complexity.

  5. Which term describes the degree to which one software component depends on the internals of another?

    Answer: Coupling

    Coupling measures the degree of dependency between software components; low coupling is desirable because it makes components easier to change independently.

  6. What is the purpose of a load balancer in a distributed system?

    Answer: To distribute incoming traffic across multiple servers

    A load balancer distributes client requests evenly across a pool of servers, preventing any single server from becoming overwhelmed and improving availability.

  7. Which design approach involves defining system behavior in terms of inputs, outputs, and transformations rather than step-by-step instructions?

    Answer: Declarative/functional design

    Declarative and functional design describe what the system should do (transformations on data) rather than how to do it step by step, improving clarity and testability.