Architecture
Overview #
VTAdmin is made up of two components:
vtadmin-web, the browser interfacevtadmin-api, the HTTP(S) and gRPC API
The vtadmin-web front-end queries its data from vtadmin-api. In turn, vtadmin-api issues queries against the vtgates and vtctlds across one or more Vitess clusters. The clusters.yaml config file defines this mapping from VTAdmin to cluster(s).
Single-cluster deployments are the simplest and most common configuration. The local example in the "Get Started" documentation is a good example of a single-cluster deployment.
Large Vitess deployments can be "multi-cluster". These environments have two or more Vitess clusters, each with its own Topology Service, that are isolated from one another. VTAdmin supports these, too. An example of a multi-cluster Vitess deployment is an environment that has one Vitess cluster per geographic region:
The Life Cycle of a VTAdmin Request #
To understand how data moves through VTAdmin, let's look at life cycle of a typical request: fetching a list of all of the schemas. We'll use the single-cluster "Get Started" environment as an example:

When a user loads the /schemas view in the browser, vtadmin-web makes an HTTP GET /api/schema/local/commerce/corder request to vtadmin-api. vtadmin-api then issues gRPC requests to the vtgates and vtctlds in the cluster to construct the list of schemas. Here's what that looks like in detail:
vtadmin-webmakes aGET /api/schema/local/commerce/corderrequest againstvtadmin-api's HTTP endpoint.vtadmin-apidiscovers a vtgate in the cluster and issues aSHOW vitess_tabletsquery on that vtgate to get a list of all tablets in the cluster.vtadmin-apidiscovers a vtctld in the cluster and makes aGetKeyspacesgRPC request to get a list of all keyspaces in the cluster.- For each of these keyspaces,
vtadmin-apichooses a random, serving tablet. The keyspace and tablet alias are used to make aGetSchemagRPC request to the vtctld to get the full schema, with all of the tables, on that tablet in the keyspace. - Since the "Get Started" example has two keyspaces,
commerceandcustomer,vtadmin-apiissues separate requests in parallel. - Finally, the
GetSchemagRPC response is annotated with additional metadata (like cluster information), and returned tovtadmin-webas JSON.