At ActiveMQ and ActiveMQ Artemis, ConnectionFactories have an interesting feature where you can pass parameters through an URI.
I was looking at Producer and Consumer APIs, and these two classes are using a method that I considered old for Artemis resembling HornetQ: Instead of passing a Properties (aka HashMaps), users would be able to create a Consumer or Producer by simply doing: new Consumer("tcp::/host:port?properties=values;properties=values...etc"); Example: Instead of the following: Map<String, Object> config = new HashMap<>(); config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9999"); config.put(ConsumerConfig.RECEIVE_BUFFER_CONFIG, -2); new KafkaConsumer<>(config, new ByteArrayDeserializer(), new ByteArrayDeserializer()); Someone could do new KafkaConsumer<>("tcp://localhost:9999?receive.buffer.bytes=-2", new ByteArrayDeserializer(), new ByteArrayDeserializer()); I don't know if that little API improvement would be welcomed? I would be able to send a Pull Request but I don't want to do it if that wouldn't be welcomed in the first place: Just an idea... let me know if that is welcomed or not. If so I can forward the discussion into how I would implement it.