Figure 1. is an example layout where 3 agents, 1 brainz and 1 API-GW instances are used. There is no theoretical limit on the number of instances when it comes to Brainz, Agent and API-GW.
Brainz, Agent and API-GW talk over NATS. The agent talks to
varnishadm to manage VCLs, etc. Brainz instances have connections
toward the PostgreSQL database and are the only type of process that performs database operations in the system. The API-GW talks HTTP for the REST API and requests
toward any of the API-GW instances are possible. A load balancer could be used in front of the API-GWs.
There is a 1-to-1 relationship between an agent and a Varnish instance. Hence, one agent can only handle one Varnish instance.