Discovery Service

Some things never change. Most of them do: as the game grows, you often need to move servers around. This service allows to discover each service dynamically, at runtime.

Each service is represented by few things: service ID and service locations.

Multiple networks

Not only players use discovery service, but other services do. If some service needs some other service location, it uses discovery API to find out.

Yet often services need to use internal routes to communicate with other services for security reasons. That’s why discovery service has multiple networks defined: external and internal. The external network is used by end users, and available online from the web.

On the other hand, the internal network is only accessible from inside of the Anthill Platform. Often, services give more privileges for internal requests. Some requests can only be called from the inside. Even the internal location of a service can be discovered only from the inside.

Each service has a list of IP addresses, request from who is considered to be internal, usually it’s a local subnet, like



This service does not acts as a load balancer. Services in question need to be behind a load balancer themselves, for example behind nginx.