This service routes incoming query requests to query executor services with the required query language and database code running. It also allows for the retrieval of cached query results, which can be requested from the frontend. In the future we envision this service as a more advanced load balancer, as RabbitMQ only has round robin load balancing, which does not work if requests take arbitrary amounts of time.