- Hands-On Microservices with Kubernetes
- Gigi Sayfan
- 157字
- 2021-06-24 13:46:37
Using client libraries
Interfaces are very convenient to work with. You operate within your programming language environments, calling methods with native data types. Working with network APIs is different. You need to use a network library, depending on the transport. You need to serialize your payload and responses and deal with network errors, disconnects, and timeouts. The client library pattern encapsulates the remote service and all these decisions and presents you with a standard interface that, as a client of the service, you just call. The client library behind the scenes will take care of all the ceremony involved with invoking a network API. The law of leaky abstractions (https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/) says that you can't really hide the network. However, you can hide it pretty effectively from the consumer service and configure it properly with policies regarding timeouts, retries, and caching.