anchor.diff:  
   NOTE: Function return type can also be Mutiny reactive types.
   
  -1. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.PubsubMessage`,
  +1. Injection works inside your function.
  +2. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.PubsubMessage`,
   this is a convenient class to deserialize a PubSub message.
  -2. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.StorageEvent`,
  +3. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.StorageEvent`,
   this is a convenient class to deserialize a Google Storage event.
   
   NOTE: we provide convenience class to deserialize common Google Cloud event inside the `io.quarkus.funqy.gcp.functions.event` package.
  
positive.code: 
  public class GreetingFunctions {
  
      @Inject
      GreetingService service;
  
      @Funq // <1>
      public void helloPubSubWorld(PubsubMessage pubSubEvent) {
          String message = service.hello("world");
          System.out.println(pubSubEvent.messageId + " - " + message);
      }
  
      @Funq // <2>
      public void helloGCSWorld(StorageEvent storageEvent) {
          String message = service.hello("world");
          System.out.println(storageEvent.name + " - " + message);
  
negative.code: 
  [source,property]
  ----
  quarkus.funqy.export=helloPubSubWorld
  ----
  
  == Build and Deploy to Google Cloud
  