S90-09A · Question #37
Service Consumer A invokes Service A (1). The logic within Service A is required to retrieve three independent data values from Services B, C, and D and to then return these data values back to…
The correct answer is B. The Asynchronous Queuing pattern is applied so that a central messaging queue is positioned. Asynchronous Queuing (B) is correct because it directly addresses the two core concerns simultaneously: it allows Service Consumer A to submit its request and immediately release its stateful wait, and it insulates the composition chain from the availability and performance…
Question
Service Consumer A invokes Service A (1). The logic within Service A is required to retrieve three independent data values from Services B, C, and D and to then return these data values back to Service Consumer A. To accomplish this, Service A begins by sending a request message to Service B (2). After receiving a response message with the first data value from Service B, Service A sends a request message to Service C (3). After it receives a response message with the second data value from Service C, Service A then sends a request message to Service D (4). Upon receiving a response message with the third data value from Service D. Service A finally sends its own response message (containing all three collected data values) back to Service Consumer A. Service Consumer A and Service A reside in Service Inventory A. Service B and Service C reside in Service Inventory B. Service D is a public service that can be openly accessed via the World Wide Web. The service is also available for purchase so that it can be deployed independently within IT enterprises. Due to the rigorous application of the Service Abstraction principle within Service Inventory B, the only information that is made available about Service B and Service C are the published service contracts. For Service D, the service contract plus a Service Level Agreement (SLA) are made available. The SLA indicates that Service D has a planned outage every night from 11 PM to midnight. You are an architect with a project team building services for Service Inventory A . You are told that the owners of Service Inventory A and Service Inventory B are not generally cooperative or communicative. Cross-inventory service composition is tolerated, but not directly supported. As a result, no SLAs for Service B and Service C are available and you have no knowledge about how available these services are. Based on the service contracts you can determine that the services in Service Inventory B use different data models and a different transport protocol than the services in Service Inventory A. Furthermore, recent testing results have shown that the performance of Service D is highly unpredictable due to the heavy amount of concurrent access it receives from service consumers from other organizations. You are also told that there is a concern about how long Service Consumer A will need to remain stateful while waiting for a response from Service A . What steps can be taken to solve these problems?
Exhibit
Options
- AThe Event-Driven Messaging pattern is applied so that a subscriber-publisher relationship is
- BThe Asynchronous Queuing pattern is applied so that a central messaging queue is positioned
- CThe Reliable Messaging pattern is applied so that a system of acknowledgements is established
- DNone of the above.
How the community answered
(43 responses)- A7% (3)
- B74% (32)
- C5% (2)
- D14% (6)
Explanation
Asynchronous Queuing (B) is correct because it directly addresses the two core concerns simultaneously: it allows Service Consumer A to submit its request and immediately release its stateful wait, and it insulates the composition chain from the availability and performance problems of Services B, C, and D. When Service D goes down from 11 PM to midnight, messages simply queue and deliver when it recovers - no requests are lost. The same buffer absorbs the unpredictable latency of D and the unknown reliability of B and C.
Option A (Event-Driven Messaging) is wrong because a publisher-subscriber model is designed for broadcasting events to multiple interested parties, not for coordinating a request-response chain where Service A needs to collect and aggregate three specific values. It doesn't solve the statefulness problem or the availability gaps.
Option C (Reliable Messaging) is wrong because it only adds acknowledgements to confirm delivery - it doesn't free Service Consumer A from waiting, nor does it buffer messages during a known outage window. It improves message confidence but leaves the core availability and statefulness problems unsolved.
Memory tip: Think "queue = patience" - Asynchronous Queuing lets the caller walk away and the system wait on their behalf, which is exactly what you need when downstream services are slow, unreliable, or have scheduled downtime.
Topics
Community Discussion
No community discussion yet for this question.
