Arcitura Certified Microservice Architect (S90.MSA) — Questions and Answers
Question 1: What is a dead-letter queue used for?
- Load balancing consumers
- Compressing large payloads
- Speeding up successful message delivery
- Capturing messages that repeatedly fail processing for later inspection (Correct answer)
Correct answer: Capturing messages that repeatedly fail processing for later inspection
Messages that can't be processed are routed to a dead-letter queue so the main flow isn't blocked.
Question 2: What information does a service typically provide when registering with a registry?
- Only its name
- Its source code
- The full request payload
- Network location (host/IP and port) and metadata (Correct answer)
Correct answer: Network location (host/IP and port) and metadata
Instances register their address, port, and metadata so callers can locate them.
Question 3: In a choreography-based saga, how do services coordinate?
- Each service reacts to events and emits new events without a central coordinator (Correct answer)
- A single thread runs all services
- A central orchestrator commands each step
- A shared database lock sequences them
Correct answer: Each service reacts to events and emits new events without a central coordinator
Choreography uses decentralized event reactions, while orchestration uses a central coordinator.
Question 4: What advantage does a dedicated dashboard (e.g., Grafana) provide for microservices?
- Automatically rewriting service code
- Visualizing metrics and trends across services for fast diagnosis (Correct answer)
- Deploying new containers
- Replacing the need for tracing
Correct answer: Visualizing metrics and trends across services for fast diagnosis
Dashboards visualize metric trends across services, helping teams spot anomalies and correlate behavior quickly.
Question 5: What is the 'fail fast' principle in resilient design?
- Detect failures quickly and return an error immediately rather than blocking (Correct answer)
- Delay all responses to batch them
- Always retry until success
- Disable all error logging
Correct answer: Detect failures quickly and return an error immediately rather than blocking
Failing fast returns errors promptly instead of holding resources on doomed calls, keeping the system responsive.
Question 6: What is the purpose of a dead letter queue (DLQ) in message-driven resilience?
- To compress message bodies
- To capture messages that repeatedly fail processing for later inspection or reprocessing (Correct answer)
- To encrypt the message broker
- To speed up message delivery
Correct answer: To capture messages that repeatedly fail processing for later inspection or reprocessing
A DLQ stores messages that cannot be processed after retries so they don't block the queue and can be examined later.
Question 7: What does the CQRS pattern separate?
- Build and deploy stages
- Command (write) and query (read) responsibilities (Correct answer)
- Authentication and authorization
- Logging and monitoring
Correct answer: Command (write) and query (read) responsibilities
CQRS splits the model used to update data from the model used to read it.
Question 8: What does the Docker instruction EXPOSE accomplish?
- Maps a volume
- Documents which port the container listens on (Correct answer)
- Opens a firewall rule
- Publishes a port to the host automatically
Correct answer: Documents which port the container listens on
EXPOSE documents the intended listening port but does not publish it by itself.
Question 9: A user dashboard service aggregates data from several other microservices, including a 'UserProfile' service (critical) and a 'WeatherWidget' service (non-critical). If the 'WeatherWidget' service fails or times out, the entire dashboard fails to load, resulting in a poor user experience. To improve the resilience of the dashboard, what pattern should be implemented to handle the failure of the non-critical 'WeatherWidget' service?
- A Saga pattern to ensure the transaction is eventually consistent.
- A Bulkhead pattern to isolate the 'WeatherWidget' call into its own thread pool.
- A Fallback pattern to provide a default or cached response for the weather data. (Correct answer)
- An aggressive Retry pattern to continuously attempt to contact the 'WeatherWidget' service.
Correct answer: A Fallback pattern to provide a default or cached response for the weather data.
A Fallback provides an alternative execution path when a command fails. [11, 22] In this case, instead of letting the entire dashboard fail, the service could execute a fallback method that returns a cached weather value, a default message like 'Weather unavailable,' or simply omits the weather widget from the response. This allows the critical parts of the dashboard to function normally. [6]
Question 10: In a circuit breaker, what does the HALF-OPEN state primarily do?
- Allows a limited number of trial requests to test if the service has recovered (Correct answer)
- Caches all responses indefinitely
- Permanently blocks all traffic to the failing service
- Doubles the request timeout on every attempt
Correct answer: Allows a limited number of trial requests to test if the service has recovered
HALF-OPEN lets a few probe requests through to determine whether the downstream service has recovered before fully closing the circuit.
Question 11: What is the primary purpose of the Saga pattern?
- Balance load between instances
- Manage data consistency across services without distributed transactions (Correct answer)
- Encrypt inter-service traffic
- Cache responses at the gateway
Correct answer: Manage data consistency across services without distributed transactions
Saga coordinates a sequence of local transactions with compensating actions to maintain consistency.
Question 12: What is the main trade-off introduced by adopting CQRS?
- Loss of independent deployment
- Inability to scale reads
- Added complexity and eventual consistency between read and write models (Correct answer)
- Mandatory shared database
Correct answer: Added complexity and eventual consistency between read and write models
CQRS increases architectural complexity and the read model may lag the write model.
Question 13: Which pattern is commonly used to maintain data consistency across services without distributed transactions?
- Two-phase commit lock
- Saga pattern (Correct answer)
- Synchronous join query
- Global table lock
Correct answer: Saga pattern
The Saga pattern coordinates a sequence of local transactions with compensating actions instead of a distributed transaction.
Question 14: Which pattern decomposes a monolith by grouping services around distinct business capabilities?
- Sidecar
- Bulkhead
- Decompose by business capability (Correct answer)
- Strangler Fig
Correct answer: Decompose by business capability
Decompose by business capability aligns each service with a function the business performs.
Question 15: A microservice needs to handle cross-cutting concerns like collecting detailed logs and metrics without bloating the primary application's code. The team wants to deploy a separate, specialized container for these tasks alongside every instance of the main microservice, sharing the same network space and lifecycle. Which container design pattern is best suited for this scenario?
- Ambassador Pattern
- Blue/Green Deployment
- Sidecar Pattern (Correct answer)
- Strangler Fig Pattern
Correct answer: Sidecar Pattern
The Sidecar pattern involves co-locating a helper container with the main application container (often in the same Kubernetes Pod). This allows the sidecar to augment the main application by handling tasks like logging, monitoring, or acting as a proxy, without being tightly coupled to the application's code.
Question 16: Which Docker instruction sets the default command executed when a container starts?
- RUN
- CMD (Correct answer)
- FROM
- COPY
Correct answer: CMD
CMD specifies the default command to run when the container launches.
Question 17: What technique makes a consumer safe against duplicate message delivery?
- Disabling acknowledgments
- Idempotent processing (Correct answer)
- Using larger batch sizes
- Increasing the timeout
Correct answer: Idempotent processing
Idempotent handlers produce the same result no matter how many times a message is processed.
Question 18: What does 'eventual consistency' mean in a distributed microservices system?
- Data is always immediately consistent everywhere
- Data becomes consistent across services after some delay (Correct answer)
- Data is never consistent
- Consistency is enforced by a global lock
Correct answer: Data becomes consistent across services after some delay
Eventual consistency means replicas converge to the same state given enough time without immediate synchronization.
Question 19: A development team has deployed a containerized microservice for processing user payments. During peak hours, the service experiences high load, leading to slow response times. The team needs a solution that automatically increases the number of running container instances based on CPU utilization and restarts any instances that become unresponsive. Which container orchestration features directly address these requirements?
- Ingress Controller and Service Mesh
- Persistent Volume and StatefulSet
- Horizontal Pod Autoscaler (HPA) and Liveness Probes (Correct answer)
- Dockerfile and Container Registry
Correct answer: Horizontal Pod Autoscaler (HPA) and Liveness Probes
The Horizontal Pod Autoscaler (HPA) is a Kubernetes feature that automatically scales the number of pod replicas in a deployment based on observed metrics like CPU utilization. Liveness probes are used by the orchestrator to check if a container is still running and responsive; if a probe fails, the container is restarted, ensuring self-healing.
Question 20: In the Saga pattern, what is a 'compensating transaction'?
- A backup of the entire database
- An operation that undoes the effect of a previously completed transaction (Correct answer)
- A transaction that compensates employees
- A transaction that runs twice for redundancy
Correct answer: An operation that undoes the effect of a previously completed transaction
Compensating transactions reverse prior steps when a later step in the saga fails, restoring consistency.
Question 21: Why are containers considered more lightweight than virtual machines?
- They require a hypervisor
- They share the host OS kernel (Correct answer)
- They cannot be isolated
- They include a full guest operating system
Correct answer: They share the host OS kernel
Containers share the host kernel, avoiding the overhead of a full guest OS per instance.
Question 22: When a query needs data from multiple services, which pattern aggregates results without a cross-database join?
- Database trigger
- Stored procedure join
- API Composition pattern (Correct answer)
- Foreign key constraint
Correct answer: API Composition pattern
API Composition queries each service's API and combines the results in memory.
Question 23: The bulkhead pattern improves resilience by:
- Combining all thread pools into one
- Sharing one connection for everything
- Isolating resources so a failure in one part doesn't sink the whole system (Correct answer)
- Removing retries
Correct answer: Isolating resources so a failure in one part doesn't sink the whole system
Bulkheads partition resources so one overloaded component can't exhaust the rest.
Question 24: A team wants each service to be independently deployable. What must be avoided?
- Versioned APIs
- Independent datastores
- Tight compile-time coupling between services (Correct answer)
- Separate CI/CD pipelines
Correct answer: Tight compile-time coupling between services
Independent deployability requires loose coupling, so shared compile-time dependencies must be avoided.
Question 25: Which component stores the entire state of a Kubernetes cluster?
- kube-scheduler
- kube-proxy
- etcd (Correct answer)
- kubelet
Correct answer: etcd
etcd is the consistent key-value store holding all cluster data.
Question 26: What is an error budget in SRE practice?
- The allowable amount of unreliability before an SLO is breached (Correct answer)
- The money spent fixing bugs
- The number of allowed code reviews
- The maximum log file size
Correct answer: The allowable amount of unreliability before an SLO is breached
An error budget is the tolerated failure margin (e.g., 0.1% downtime) derived from an SLO.
Question 27: Which Kubernetes object is best suited for stateful applications requiring stable network identities?
- StatefulSet (Correct answer)
- DaemonSet
- Job
- Deployment
Correct answer: StatefulSet
A StatefulSet provides stable, unique network identifiers and ordered deployment for stateful apps.
Question 28: What does client-side service discovery require the client to do?
- Avoid any registry
- Rely solely on DNS round-robin from the load balancer
- Query a registry and choose an instance itself (Correct answer)
- Send all traffic to a fixed IP
Correct answer: Query a registry and choose an instance itself
In client-side discovery, the client looks up the registry and performs load balancing across instances.
Question 29: What is the role of a container registry such as Docker Hub?
- To monitor container health
- To orchestrate running containers
- To store and distribute container images (Correct answer)
- To define network policies
Correct answer: To store and distribute container images
A registry stores container images and serves them for pulls and pushes.
Question 30: In the context of containerization, what is the primary purpose of a container image?
- To serve as a static, immutable package containing an application's code, runtime, and all dependencies. (Correct answer)
- To monitor the real-time performance and resource consumption of a running microservice.
- To provide a live, running, and isolated environment for an application.
- To define the networking rules and load balancing strategy for inter-service communication.
Correct answer: To serve as a static, immutable package containing an application's code, runtime, and all dependencies.
A container image is a read-only template or blueprint that packages up the application code along with all its necessary dependencies, libraries, and configuration files. A container is the runnable instance created from an image. The image itself is static and portable.
Question 31: Which practice reduces the risk of using vulnerable third-party libraries in microservices?
- Regular dependency scanning and patching (software composition analysis) (Correct answer)
- Bundling all libraries into one giant file
- Never updating dependencies
- Disabling version control
Correct answer: Regular dependency scanning and patching (software composition analysis)
Scanning and patching dependencies addresses known vulnerabilities in third-party code.
Question 32: How is service discovery commonly handled in Kubernetes?
- Through Services and built-in DNS (CoreDNS) (Correct answer)
- Only via external Eureka
- Manual IP configuration in each pod
- It is not supported
Correct answer: Through Services and built-in DNS (CoreDNS)
Kubernetes Services get stable DNS names resolved by CoreDNS to backing pods.
Question 33: The Anti-Corruption Layer (ACL) primarily exists to do what?
- Discover service endpoints
- Translate between a service's model and a legacy or external model (Correct answer)
- Cache query results
- Encrypt all traffic
Correct answer: Translate between a service's model and a legacy or external model
An ACL isolates a service from foreign models by translating at the boundary.
Question 34: What is a key drawback of routing all traffic through a single API gateway?
- It prevents the use of HTTPS
- It removes all latency
- It eliminates the need for monitoring
- It can become a single point of failure and bottleneck (Correct answer)
Correct answer: It can become a single point of failure and bottleneck
A centralized gateway concentrates traffic, so it must be highly available and scaled to avoid being a bottleneck or failure point.
Question 35: What is the benefit of caching responses as a fallback during a downstream outage?
- It allows serving slightly stale but usable data instead of an error (Correct answer)
- It guarantees data is always real-time
- It removes the need for a database
- It encrypts the downstream call
Correct answer: It allows serving slightly stale but usable data instead of an error
Serving cached (stale) data during an outage keeps functionality available, trading freshness for availability.
Question 36: What is a compensating transaction in a saga?
- A retry of the same step forever
- A new microservice
- An action that undoes the effect of a previously completed step on failure (Correct answer)
- A database backup
Correct answer: An action that undoes the effect of a previously completed step on failure
Compensating transactions semantically reverse prior steps when a later step fails.
Question 37: A financial application involves a complex business transaction that spans multiple microservices: 'AccountService', 'TransactionService', and 'NotificationService'. To create a new transfer, the system must debit one account, credit another, record the transaction, and send a notification. If any of these steps fail, the entire operation must be rolled back to maintain data consistency. Which design pattern is best suited for managing this distributed transaction?
- Two-Phase Commit (2PC)
- Saga Pattern (Correct answer)
- Database per Service
- CQRS Pattern
Correct answer: Saga Pattern
The Saga pattern is designed to manage data consistency across microservices in a distributed transaction. It uses a sequence of local transactions where each transaction updates data within a single service and publishes an event to trigger the next transaction. If a step fails, the saga executes compensating transactions to undo the preceding work, ensuring eventual consistency without the tight coupling and blocking nature of Two-Phase Commits.
Question 38: In Kubernetes, which controller runs exactly one Pod on every node in the cluster?
- ReplicaSet
- StatefulSet
- Deployment
- DaemonSet (Correct answer)
Correct answer: DaemonSet
A DaemonSet ensures a copy of a Pod runs on all (or selected) nodes.
Question 39: The Database-per-Service pattern primarily promotes what?
- Loose coupling and independent data ownership (Correct answer)
- Cross-service joins
- Centralized transaction control
- Shared schema reuse
Correct answer: Loose coupling and independent data ownership
Each service owning its database prevents tight coupling through a shared schema.
Question 40: In microservices, how is distributed tracing used?
- As a mechanism to change the behavior of a microservice at runtime
- As a way to ensure that failed microservices are appropriately resurrected
- As a method of transferring log management from one server to another on demand.
- As a mechanism to observe the behavior of distinct system calls between and within microservices (Correct answer)
Correct answer: As a mechanism to observe the behavior of distinct system calls between and within microservices
Distributed tracing is essential in microservices architectures for gaining visibility into the flow of requests across multiple services. It allows developers to track a single request as it propagates through various microservices, providing insights into latency, errors, and the overall performance of the distributed system. This mechanism is invaluable for debugging and performance optimization in complex environments.
Question 41: In an orchestration-based saga, what coordinates the steps?
- The client application
- Random event broadcasting
- A central orchestrator that tells participants what to do (Correct answer)
- A shared database trigger
Correct answer: A central orchestrator that tells participants what to do
Orchestration uses a central coordinator to direct each saga step and compensation.
Question 42: What is the primary purpose of the CQRS pattern in microservices?
- Combining all queries into one giant SQL statement
- Encrypting all command messages
- Eliminating the need for databases
- Separating read and write models for independent optimization (Correct answer)
Correct answer: Separating read and write models for independent optimization
CQRS (Command Query Responsibility Segregation) splits read and write models so each can scale and be optimized separately.
Question 43: What is the purpose of request/response transformation at the gateway?
- Compiling source code
- Adapting payload formats or protocols between clients and services (Correct answer)
- Storing user passwords
- Provisioning servers
Correct answer: Adapting payload formats or protocols between clients and services
Transformation lets the gateway reshape payloads or translate protocols (e.g., REST to gRPC) so clients and services need not match exactly.
Question 44: An organization is migrating a legacy monolithic application to microservices. They need a way to synchronize data from the monolith's database to the new microservices' databases in near real-time without modifying the monolith's application code. Which pattern is best suited for this purpose?
- Transactional Outbox
- API Composition
- Change Data Capture (CDC) (Correct answer)
- Strangler Fig Pattern
Correct answer: Change Data Capture (CDC)
Change Data Capture (CDC) is a pattern used to monitor and capture row-level changes (inserts, updates, deletes) in a database's transaction logs and stream these changes as events to other systems. This allows new microservices to stay synchronized with the legacy database without requiring intrusive changes to the original application's code.
Question 45: What is the main reason to encrypt data both in transit and at rest in a microservices system?
- To speed up serialization
- To increase data size for redundancy
- To avoid using TLS certificates
- To make data unreadable to attackers who intercept traffic or access storage (Correct answer)
Correct answer: To make data unreadable to attackers who intercept traffic or access storage
Encrypting in transit and at rest protects data confidentiality whether intercepted on the wire or read from storage.
Question 46: What is the primary role of a Circuit Breaker pattern in interservice communication?
- To route traffic to different versions of a service for A/B testing.
- To provide a fallback and prevent repeated calls to a failing service. (Correct answer)
- To encrypt communication channels between services.
- To authenticate and authorize requests between services.
Correct answer: To provide a fallback and prevent repeated calls to a failing service.
The Circuit Breaker pattern is a fault-tolerance mechanism. It monitors calls to a service, and if the number of failures exceeds a certain threshold, it 'trips' or 'opens' the circuit, causing subsequent calls to fail immediately without attempting to contact the failing service. This prevents the client from wasting resources on calls that are likely to fail and gives the failing service time to recover, thus preventing cascading failures.
Question 47: In a request/response REST call, which HTTP status code best signals that the caller should retry later?
- 404 Not Found
- 503 Service Unavailable (Correct answer)
- 400 Bad Request
- 401 Unauthorized
Correct answer: 503 Service Unavailable
503 indicates a transient unavailability, making it a retryable condition.
Question 48: An e-commerce platform is migrating from a monolithic architecture to microservices. They need a way for the front-end clients (web and mobile) to interact with the various new services like 'User', 'Product', and 'Order' without having to know the specific endpoint for each one. Which design pattern provides a single, unified entry point for all client requests and can also handle concerns like authentication, routing, and rate limiting?
- Service Discovery
- Circuit Breaker
- Saga Pattern
- API Gateway (Correct answer)
Correct answer: API Gateway
The API Gateway pattern acts as a single entry point for all clients. It is responsible for request routing, composition, and protocol translation. It can also handle cross-cutting concerns such as authentication, SSL termination, and rate limiting, simplifying the client and the microservices themselves.
Question 49: Which consistency challenge is most associated with caching data from another service?
- Inability to read the cache
- Stale data when the source changes before the cache is invalidated (Correct answer)
- Doubling of write throughput
- Permanent data loss
Correct answer: Stale data when the source changes before the cache is invalidated
Caches can serve outdated values if invalidation lags behind updates in the owning service.
Question 50: Which pattern uses a per-client-type backend to tailor APIs to specific frontends?
- Saga
- Event Sourcing
- Backends for Frontends (BFF) (Correct answer)
- Bulkhead
Correct answer: Backends for Frontends (BFF)
BFF provides a dedicated gateway tuned to each client experience, such as mobile or web.
Arcitura Certified Microservice Architect (S90.MSA)
The S90.MSA certification validates expertise in microservice architecture design patterns, containerization, data management, CI/CD deployment strategies, and API gateway management across cloud-native environments.
Exam Rules
- You can skip questions and return to them later
- Flag questions for review before submitting
- No feedback shown until you submit the entire exam
- Unanswered questions count as wrong — answer everything
- 10 pretest questions are mixed in and don't affect your score
- Timer auto-submits when time runs out
- Your progress is auto-saved every 30 seconds