Free · no sign-up · no time limit
Ready-made multiple-choice practice quizzes, hand-checked. Take any free quiz online — every answer comes with an explanation, and every quiz page has a full answer key to revise from.
Free · no sign-up · no time limit
Ready-made multiple-choice practice quizzes, hand-checked. Take any free quiz online — every answer comes with an explanation, and every quiz page has a full answer key to revise from.
IT
Test your mastery of microservices patterns, including Saga, CQRS, Outbox, API Gateways, and domain decomposition. Answer each question to see whether you got it right, with an explanation every time.
A free 16-question multiple-choice practice test on IT. Each question has one correct answer and a short explanation, and the full answer key below the player doubles as a study sheet. No account, no time limit — take it as often as you like.
This is a free, 16-question multiple-choice quiz. Answer each question to see whether you got it right, with an explanation for every answer. There is no sign-up and no time limit — take it as many times as you like, and use the answer key above to revise before or after.
Correct answer: BAtomically updating the database and publishing a corresponding event to a message broker without dual-write failures
The Transactional Outbox pattern writes domain updates and outgoing events into the same local database transaction; a separate poller or CDC tool then reliably publishes events to the broker.
Correct answer: BAn orchestrated saga uses a central coordinator to invoke participants; choreographed sagas rely on services reacting to events autonomously
In an orchestrated saga, a central orchestrator tells services which local transactions to execute, whereas choreography relies on services publishing and subscribing to events without a central coordinator.
Correct answer: BTo semantically undo the effects of a previously committed local transaction when a downstream step fails
Because sagas commit changes locally at each step, failures in later steps require executing compensating transactions that reverse earlier committed operations.
Correct answer: BSeparating operations that mutate state (Commands) from operations that read state (Queries), often using different models
CQRS separates write operations (Commands) from read operations (Queries), allowing developers to scale, optimize, and model read and write data pathways independently.
Correct answer: BIt provides tailored API gateways optimized for the unique requirements of specific client interfaces (e.g., mobile, web, IoT)
The BFF pattern creates dedicated gateway services that aggregate and tailor backend data specifically to the requirements, network profiles, and display needs of distinct frontend platforms.
Correct answer: BA clear boundary within which a specific domain model applies and terms in the ubiquitous language have a singular meaning
A Bounded Context defines the conceptual and linguistic boundary within which a particular domain model is consistent and terms have unambiguous, contextual meanings.
Correct answer: BReading committed transaction log changes from a database engine and streaming them as events to message brokers
CDC tools (such as Debezium) monitor database transaction logs (e.g., Postgres WAL or MySQL binlog) to emit reliable, low-latency change events without impacting application code.
Correct answer: BServices are deployed separately but remain tightly coupled via synchronous dependencies, sharing the downsides of both paradigms
A distributed monolith occurs when tightly coupled components are split into microservices, compounding operational, networking, and latency complexities while hindering independent deployment.
Correct answer: BBulkhead Pattern
Inspired by compartmentalized ship hulls, the Bulkhead pattern isolates resources (such as thread pools or memory) so that an outage in one downstream service does not consume all system resources.
Correct answer: BGradually replacing specific legacy system capabilities with microservices until the legacy system can be safely decommissioned
The Strangler Fig pattern involves intercepting calls to a legacy system and routing them to new microservices piece-by-piece, gradually deprecating the monolith without risky big-bang rewrites.
Correct answer: BIt breaks service autonomy, couples schema changes across teams, and bypasses domain access boundaries
A shared database creates tight schema coupling, bypasses service business logic, risks cross-domain data corruption, and makes independent deployment and scaling impossible.
Correct answer: BQuerying multiple backend microservices on behalf of a single client request and returning a consolidated payload
Request aggregation allows an API gateway to fan out calls to multiple underlying microservices, aggregate the responses, and return a single, unified payload to minimize client round-trips.
Correct answer: BCascading latency, increased failure rates, and tight operational coupling across the chain
Synchronous call chains compound network latency, multiply failure probabilities, and lead to thread starvation across upstream services if a single downstream service slows down.
Correct answer: BIt verifies that API providers do not break the specific schema expectations of their consumers without running full end-to-end environments
Consumer-driven contract testing codifies consumer expectations into contracts, allowing providers to validate their implementations in fast isolation builds without maintaining fragile end-to-end test environments.
Correct answer: BTo translate and isolate domain models between a new microservice and an old legacy system so neither pollutes the other
An Anti-Corruption Layer translates semantics between two distinct domain models (such as a clean new service and a messy legacy monolith), keeping the new design unpolluted.
Correct answer: BIt tracks and visualizes the end-to-end path and timing of a single request across multiple interconnected services
Distributed tracing propagates trace and span IDs across network hops, allowing operators to visualize the lifecycle of a request and quickly pinpoint latency bottlenecks across services.