Fork me on GitHub
Chris O’Donnell03:04:25

I'm having some trouble getting immutant/messaging working. I've narrowed the problem down to a conflict between immutant and datomic. If a make a new project and add [com.datomic/datomic-pro "0.9.5350"] [org.immutant/messaging "2.1.4"] to the dependencies, then run (require '[immutant.messaging :refer :all]) and (def s (queue "test-queue")), I get an exception CompilerException java.lang.IncompatibleClassChangeError: Implementing class, compiling:(form-init1071921610737901131.clj:1:8). I've tried lein clean and clearing my maven cache, both to no avail. I also tried going to an older version for datomic and immutant, but got the same error.

Chris O’Donnell03:04:27

For reference, I'm using openjdk-8 (OpenJDK 64-Bit Server VM 1.8.0_66-internal-b17)


@tcrawley: some bad news - i finally got our benchmarking tool to work with compression ("permessage-deflate") by making a fork of the Gniazdo web socket client (which is based on Jetty 9). In load tests with compression enabled, found that around 1% of the messages are corrupted as seen by the client. so we had to abort our move to immutant.


@moizsj: interesting. and you don't see corruption with that client against your existing system?


@tcrawley: correct. No corruption with existing system.

Chris O’Donnell13:04:31

@jcrossley3: I did not. Thanks for the reference!

Chris O’Donnell13:04:33

Works like a charm. Much appreciated.


@moizsj: how big are your payloads? I wonder if you are hitting


@tcrawley: the messages are really huge strings, though I'll have to check exactly how large. What version of Undertow does current Immutant use?