Prepare and test your skills

Prepare and test your skills

Free sample question, answered and explained below. The Professional Data Engineer practice bank has 1,353 more like it. Try 10 free: instant score, no account.
You are redesigning a data ingestion pipeline for a high-traffic e-commerce platform. Currently, the order management service sends data to a downstream inventory processing service using synchronous API calls. When the inventory service experiences an outage or a traffic spike, the order management service blocks while waiting for responses. This leads to timeouts and cascading failures across the platform.
You need to implement a fault-tolerant pattern to achieve the following:
Which architectural approach should you implement?
Graceful degradation is a fault-tolerance design pattern where a system continues to operate, but with reduced functionality, when a component fails. In this context, bypassing the inventory service and logging a metric to Cloud Monitoring allows the main order flow to continue without being blocked by the downstream outage.
The business requirements explicitly stated that real-time inventory updates were non-critical, and it was acceptable to permanently drop the data to ensure the order management service remained fast and highly available during an outage.
To achieve both high availability and zero data loss, systems should move away from synchronous graceful degradation that drops data, and instead adopt loosely coupled components using asynchronous eventing.
A circuit breaker is a fault-tolerance design pattern used to detect failures and encapsulate the logic of preventing a failure from constantly recurring. When a downstream service (like the inventory service) fails repeatedly, the circuit breaker "trips" into an open state and immediately returns an error to the caller instead of attempting the actual synchronous call.
The scenario required failing fast and rejecting new requests during an outage, and data loss or dropping the request was an acceptable business trade-off to protect system resources and maintain API responsiveness.
While a circuit breaker is an excellent pattern for protecting synchronous APIs from cascading failures, it is not a substitute for an asynchronous event-driven architecture when data durability and guaranteed eventual processing are strict requirements.
The bulkhead pattern is a resilient design pattern that isolates elements of an application into separate pools so that if one fails, the others will continue to function. Deploying a service across multiple Google Kubernetes Engine (GKE) clusters and using Cloud Load Balancing is a way to isolate regional, zonal, or cluster-level failures, ensuring that an issue in one environment does not take down the entire service.
The primary goal was to protect the inventory service from complete regional outages by distributing its compute resources, rather than decoupling the upstream and downstream services to handle traffic spikes and ensure data durability.
An event-driven architecture is a software design pattern where decoupled applications communicate via events. By utilizing a fully managed service like Eventarc, producers generate and publish events asynchronously without waiting for a synchronous response from the consumer. The event router handles the ingestion, filtering, and delivery of these events to the appropriate downstream services.
Unlike synchronous patterns that either drop requests or block resources during an outage, an asynchronous event-driven model provides true decoupling. It acts as a highly durable shock absorber during massive traffic spikes and ensures data integrity during downstream outages, making it the most resilient and reliable choice for this scenario.
Answer them yourself and get your score the moment you finish. No account needed.
Full access includes
Keep the momentum going with these hand-picked practice scenarios
Last updated