A service mesh allows for communication between microservices, between services and their database, they act as a proxy and load balance, control Security etc. A service mesh is one of the most important parts of a Microservice architecture. Examples of Service Meshes include Istio, Linkerd and Consul, there are more.
This article highlights some of the drawbacks of current Service meshes and their lack of support for event sourcing/streaming and other weaknesses. This article does a good job of pointing out how current services meshes are not inline with current event sourcing microservice trends. This is a very handy article with great diagrams.
This article explains the difference between a Service Mesh and API Gateway. It explains how a service mesh is similar to an API Gateway and how they are different. Consul is one example of an excellent Service Mesh software. Basically your services need a way to find each other and communicate and a service mesh is that how. Service mesh is not the only way for microservices to communicate, you can use Event/Message Brokers, however you still need the service mesh in order for the services to find the Message Broker to send it messages or subscribe etc. You will also need a service mesh to find your Database and other software instances. So a service mesh works with microservices to help them communicate with the resources they need.
This is an excellent article that explains exactly what a service mesh is and why you need them in Microservice systems. This article covers the history of Service Mesh’s and predicts the future of them as well. This article covers mostly Linkerd and how wonderful it is as a service mesh.
This article does an excellent job of explaining what a service mesh is and how it works in a microservice environment. The diagrams in this article make it easier to understand what a service mesh is and it’s role in microservice communication. This article also covers the pros and cons of a service mesh.
In order to completely understand microservices you also have to understand networking. Communication is one of the hardest parts of microservice design, get it wrong and your system simply won’t perform. Below are some useful links that explain networking concepts.
Understanding the basics of RESTful APIs. This is a great article that covers how REST works and how to design a REST API. This article contains some very useful information and is a very quick introduction to the concept.
Understanding And Using REST APIs This is another really great article that covers API consumption. This article is quite a bit longer and more involved than the one above. This article covers REST in depth and is one of the best articles I have found on the subject.
Covered in the article is:
What is a REST API
The anatomy of a request
Testing Endpoints with Curl ( if you have not played with Curl then you absolutely should) CURL website
HTTP Status Codes and Errors
Communication in a microservice architecture This article covers some basic information about Microservice communication. It makes some valid points and discusses some of the techniques and technology used for Microservice communication. This Article has some really good links listed throughout it.