diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
index 04f0d29..f9555f6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
@@ -20,6 +20,7 @@
 
   private static final Logger LOGGER = LoggerFactory.getLogger(AMQPSession.class);
   private static final String EXCHANGE_TYPE_DIRECT ="direct";
+  private static final String EXCHANGE_TYPE_FANOUT ="fanout";
   private final Properties properties;
   private final String pluginName;
   private Connection connection;
@@ -49,11 +50,17 @@
         }
         connection = factory.newConnection();
         Channel ch = connection.createChannel();
+        exchangeName = UUID.randomUUID().toString();
         if (StringUtils.isNotEmpty(properties.getAMQPQueue())) {
-          exchangeName = UUID.randomUUID().toString();
-          ch.exchangeDeclare(exchangeName, EXCHANGE_TYPE_DIRECT, true);
+          String exchangeType = EXCHANGE_TYPE_DIRECT;;
+          String routingKey = properties.getAMQPRoutingKey();
+          if (routingKey.isEmpty()) {
+            exchangeType = EXCHANGE_TYPE_FANOUT;
+            routingKey = pluginName;
+          }
+          ch.exchangeDeclare(exchangeName, exchangeType, true);
           ch.queueDeclare(properties.getAMQPQueue(), true, false, false, null);
-          ch.queueBind(properties.getAMQPQueue(), exchangeName, "com.sonymobile.plugin.demo");
+          ch.queueBind(properties.getAMQPQueue(), exchangeName, routingKey);
           publishChannel = ch;
         } else {
           exchangeName = properties.getAMQPExchange();
