Summary
In this chapter, we have discussed different methods, protocols, and patterns that are used to implement interservice communication. We have discussed how to find services on a Kubernetes cluster with multiple methods, including Kubernetes services and Consul. We addressed what a service mesh is and implemented a service discovery scenario with a Consul service mesh. Further, we have also discussed resiliency patterns, including retries, timeouts, failovers, and the circuit breaker pattern. We have also discussed client-side load balancing with Ballerina to improve the system's performance.
Then we discussed synchronous and asynchronous communication methods. Under synchronous communication methods, we explored more advanced concepts of the HTTP, including building form application, working with a multipart request, and the OpenAPI specification. We discussed the GraphQL interface to create a more sophisticated REST API to get only the required fields of the response...