VTGate is a lightweight proxy server that sits between your application and your shards, which contain your data. VTGates are essentially stateless, extremely scalable, and not very resource intensive on memory.

Some of VTGate’s main functions are as follows:

  • Keeps track of the Vitess cluster state, and routes traffic accordingly.
  • Parse SQL queries fully, and combines that understanding with Vitess VSchema direct queries correct VTTablet (or set of VTTablets) and returns consolidated results back to the client. 
  • It speaks both the MySQL Protocol and the Vitess gRPC protocol. Thus, your applications can connect to VTGate as if it is a MySQL Server.
  • Aware of failovers in underlying shards, allowing buffering of queries to allow for reduced application impact.