I'm also not a Spark user, but I have used Storm:
- Storm is significantly more mature and performant the moment.
- Storm has a better cross-language story in terms of bolt functions.
- Pretty much everything in Onyx is much more open ended. This applies to deployment, program structure, and workflow creation - and is mostly an artifact of how aggressively Onyx uses data structures.
- Onyx has a far better reach across languages in terms of its information model.
- Onyx will be adopting a tweaked version of Storm's message model next release to get on the same level of performance and reliability. We're dropping the HornetQ dependency.
- Onyx is born out of years of frustration of direct usage of Storm and Hadoop.