An internal city fee-calculator microservice needs another service to run a named calculation as if calling a remote procedure and return a result. Which integration pattern best describes that interaction?
Select an answer to reveal the explanation.
Short Explanation
The fee service wants to "call a function" that happens to live on another host—that is RPC thinking. One side asks for a named operation and waits on a result, not a random file drop or a chat post. Keep that pattern in mind when services expose procedure-like endpoints.
Full Explanation
An internal city fee-calculator microservice that needs another service to run a named calculation as if calling a remote procedure and return a result is best described as RPC-style invocation of a remote procedure-like endpoint for the calculation. RPC emphasizes named operations and responses across a network boundary within the municipal service architecture. Fire-and-forget file drops to object storage with no response channel cannot return the calculation inline. Browser-only Server-Sent Events that never invoke a backend method do not call the fee calculator. Unstructured chat messages posted to a public social feed are not a controlled integration pattern for authoritative fee logic. Exam caveat: gRPC and similar frameworks modernize RPC; REST can expose RPC-like operations too, but the concept under test is remote procedure semantics versus pure event or file-based integration. Operational check: invoke the named calculation from the caller, verify payloads, timeouts, and error mapping, add safe retries with idempotency keys where appropriate, trace the call across services, and register the RPC contract in the civic service catalog. In municipal cloud operations, record the chosen control and the rejected alternatives in the change or incident ticket so future on-call staff understand which failure modes were avoided for city services. Re-validate after the next maintenance window that the same decision still holds under current provider limits, identity bindings, and application versions used by the civic platform team.