Question 1
A logistics company is designing a ShipmentTracking service. The initial design requires client applications to know whether a shipment is being transported by ground, air, or sea to call the correct internal endpoint (/trackGround, /trackAir, /trackSea). An architect flags this as a violation of a core service-orientation principle. Which principle is primarily being violated, and what is the best remedy?
Answer and explanation
Correct answer: B
The Service Abstraction principle is violated because the service's internal logic (the different transport methods) is exposed to its consumers. Consumers should interact with a simplified, consistent contract. The best remedy is to create a single track endpoint that accepts a shipment ID. The service itself would then be responsible for looking up the transport method and routing the request internally, completely hiding this complexity from the client.