The first step in performing communication is figuring out the endpoints. This process is called service discovery. This is complicated by the following facts:
- The endpoint addresses (for example, IP addresses) are generally dynamic and change frequently.
- Services are generally deployed in a cluster of redundant instances, so there is more than one instance (endpoint) that can service a request.
- The number of instances changes with time—autoscaling according to the load.
There are essentially two ways of doing the service discovery, which are as follows:
- Server-side service discovery
- Client-side service discovery