code: public void sendObjectToTopic(@Observes @JsTopicEvent("") Object payload, EventMetadata metadata) {
  		MessageToClient msg = new MessageToClient();
  		InjectionPoint injectionPoint = metadata.getInjectionPoint();
  		Annotated annotated = injectionPoint.getAnnotated();
  		JsTopicEvent jte = annotated.getAnnotation(JsTopicEvent.class);
  		if (jte != null) {
  			String topic = jte.value();
  			msg.setId(topic);
  			JsonMarshaller jm = annotated.getAnnotation(JsonMarshaller.class);
  			try {
  				if (jm != null) {
  					msg.setJson(argumentServices.getJsonResultFromSpecificMarshaller(jm, payload));
  				} else if(jte.jsonPayload()) {
  					if(!String.class.isInstance(payload)) {
  						throw new UnsupportedOperationException("'"+payload+"' cannot be a json object. Field annotated JsTopicEvent(jsonPayload=true) must be Event<String> type and fire correct Json.");
  					}
  					msg.setJson((String) payload);
  				} else {
  					msg.setResponse(payload);
  				}
  				topicsMessagesBroadcaster.sendMessageToTopic(msg, payload);
  			} catch (JsonMarshallingException ex) {
  				logger.error("'"+payload+"' cannot be send to : '"+topic+"'. It cannot be serialized with marshaller "+jm, ex);
  			} catch (Throwable ex) {
  				logger.error("'"+payload+"' cannot be send to : '"+topic+"'.", ex);
  			}
  		}
  	}
docs: Send message to topic
  
  @param payload
  @param metadata