A company has many application servers that call internal REST services. Today, every caller repeatedly writes boilerplate code to construct HTTP requests, serialize payloads, add headers, handle authentication, parse responses, retry failures, and map errors. This does not scale as the number of services and endpoints grows.
Design an abstraction layer or internal SDK so that callers can invoke typed service methods such as exampleService.processSomething(data) instead of manually constructing POST requests. The system should hide REST implementation details while still supporting reliability, observability, security, service evolution, and multiple downstream services.
Assume there are no specific performance numbers from the interviewer. State your assumptions and explain the architecture, APIs, data model or interface definitions, request flow, error handling, versioning, and operational considerations.