Fork me on GitHub

hello all, just wondering if anyone has come across this: the call to onyx.api/start-env and /start-peer-group are breaking my tests with a ClassNotFoundException, am I missing a dependency/requirement or something from my project.clj?


I notice that onyx-kafka plug-in is using Franzy wrapper for Kafka, whereas, commander example using gregor. Would like know the experience and why the one was chosen over other? I have also experimented with kafka-fast but that uses Redis for offsets that brings one more component to the party.


I think because franzy isnt well maintained and Gregor is more of a simple wrapper around the Java api


@anujsays Mostly what @camechis said. When I get time I’m going to switch onyx-kafka to use the direct Java bindings. I didn’t use the Java bindings for the Commander example because it was written for a customer where Gregor was more appropriate.


@theblackbox Almost definitely, yes. Can we see the full stacktrace?


@michaeldrogalis I wasn't too sure that what I was doing was "correct" from an Onyx point of view, as my project sets everything up and submits a job to start consuming from Kafka, whereas I believe the better way to achieve what I want is to decouple the onyx config from the submission of jobs. If I do that then I'm not dealing with the onyx.api and don't break my tests. If you still think it's worth resolving then it's pretty simple for me to replicate so it's up to you - just don't want you to be supporting my dumbfuckery 😉


@theblackbox We usually put those two things together in the same project and do separate uberjars, or one uberjar with a dispatched entry point.


It sounds like you have a run-of-the-mill classpath issue. Hard to say without seeing more.


yeah that's what I thought. I'll make a note to dig the issue out and if it's anything other than classpath/deps I'll put a ticket together for yous.


High likelihood the problem is in your project with conflicting deps. Run lein deps :tree and look for warnings.


For anybody curious basic tests are working (ie Parameter/Job config and a simple job pipeline backed by an invocation of a clj function). We are adding more API coverage tests and I’m adding the instance-binding code now


Hello everybody, finally im going deploy my onyx application and have some questions about it. I only have :onyx.plugin.datomic/read-log jobs, so if i need to redeploy my jobs i have to change :onyx/tenancy-id right? There is any way to redeploy jobs to the exists :onyx/tenancy-id? I question about this because i need to keep :datomic/log-start-tx sync with my database. If i change my :onyx/tenancy-id the jobs will start reading from the :datomic/log-start-tx and not from zookeeper database TX holder. For example will send again emails triggered from news transacts. Its clear my questions? Theres is any way to do this? Or i have to change :onyx/tenancy-id and sync before redeploy my jobs?


@lellis It’s pretty standard to kill/submit job to restart a job within the same tenancy ID.


You need to use resume points to carry through state across jobs.


That’s required regardless of whether or not you’re switching tenancies.