docs: public static void main(String[] args) throws Exception {
      ConfigRegistry configRegistry = ConfigBootstrap.configRegistry();
  
      Config config =
          configRegistry
              .objectProperty("io.scalecube.services.gateway", Config.class)
              .value()
              .orElseThrow(() -> new IllegalStateException("Couldn't load config"));
  
      LOGGER.info(DECORATOR);
      LOGGER.info("Starting Gateway on {}", config);
      LOGGER.info(DECORATOR);
  
      MetricRegistry metrics = initMetricRegistry();
  
      Microservices.builder()
          .discovery(serviceEndpoint -> serviceDiscovery(serviceEndpoint, config))
          .transport(opts -> serviceTransport(opts, config))
          .gateway(opts -> new WebsocketGateway(opts.id("ws").port(7070)))
          .gateway(opts -> new HttpGateway(opts.id("http").port(8080)))
          .gateway(opts -> new RSocketGateway(opts.id("rsws").port(9090)))
          .metrics(metrics)
          .startAwait();
  
      Thread.currentThread().join();
    }