docs: public static void main(String[] args) {
      // ScaleCube Node node with no members
      Microservices seed =
          Microservices.builder()
              .discovery(ScalecubeServiceDiscovery::new)
              .transport(ServiceTransports::rsocketServiceTransport)
              .startAwait();
  
      // Construct a ScaleCube node which joins the cluster hosting the Greeting Service
      Microservices microservices =
          Microservices.builder()
              .discovery(serviceEndpoint -> serviceDiscovery(serviceEndpoint, seed))
              .transport(ServiceTransports::rsocketServiceTransport)
              .services(new GreetingServiceImpl())
              .startAwait();
  
      // Create a proxy to the seed service node
      ServiceCall service = seed.call();
  
      // Create a ServiceMessage request with service qualifier and data
      ServiceMessage request =
          ServiceMessage.builder().qualifier(SERVICE_QUALIFIER).data("joe").build();
      // Execute the Greeting Service to emit a single Greeting response
      Publisher<ServiceMessage> publisher = service.requestOne(request, Greeting.class);
  
      // Convert the Publisher using the Mono API which ensures it will emit 0 or 1 item.
      Mono.from(publisher)
          .subscribe(
              consumer -> {
                // handle service response
                Greeting greeting = consumer.data();
                System.out.println(greeting.message());
              });
  
      // shut down the nodes
      seed.shutdown().block();
      microservices.shutdown().block();
    }