@dave.dixon There could be an interesting concept of a CQRS like feed system using Kafka etc. Even core.async is Kafka isnโt suitable. I was a big fan of Drools in the early days for Rete algorithm stuff, itโs got even better since JBoss acquired it.
I recently build some component for a workshop about event sourcing with Kafka. Wanted to use onyx first, but was a little to much. But with Kafka you could just use separate topics for it right?
Yes.
We're doing a CQRS-ish system using Kafka/Onyx, and it's working out pretty nicely. The main thing is getting the flows for biz logic right and then maintaining those as the product requirements evolve. We have a sort of primitive DSL that handles some of the heavy lifting for defining Onyx jobs, but it's pretty much just syntactic sugar. But the sorts of things we're doing really seem like a good fit for forward chaining rules like Drools or clara-rules on the clojure side. clara is supposed to be architected to allow for different implementations of the Rete network (apparently there was a POC with Storm at some point), and it seems like a great fit with Onyx.
The hardest thing we encounter right now is actually structuring the job graph to correctly capture conditional flows, logical dependencies between tasks, etc. But this is the sort of thing the Rete compiler is capturing for you based on a more delcarative definition of rules.
๐