4 ms·
I don't have much practical experience with Storm, but I was pretty interested in it a few years back. After working with Akka more and more the past year, I h
by ssmoot 11y ago
I don't have much practical experience with Storm, but I was pretty interested in it a few years back.
After working with Akka more and more the past year, I have to wonder what would inspire someone to choose Storm over it though. Akka scales from millions of messages all the way don't to "I need an end-point for a web-socket", or a single Actor for unique id generation.
It's really an amazing technology. A bit of boiler-plate, but certainly no more than something like Storm and you get to a place where it's 30 seconds of setup before you start implementing your flows.
It's like that old idea that eventually you'd be able to take a Visio diagram, and just translate it to code. It's flow-chart logic diagrams made manifest. Completely unlike anything else I've ever experienced. Started with Imperative programming with BASIC, moved on to OOP and very primitive rules engines with c#, DSLs and code-rewriting with S-expressions with Ruby, introduced to functional programming by Scala. Then I get into Akka and despite working with the same language it feels like a whole other paradigm with just as significant a shift and contribution to make as the others.
So wondering across posts on Storm (or more routinely lately, Spark), make me wonder if anyone else feels the same, or if all of these tools are kind of in that same category.
Or maybe I'm just overselling Akka. But when you hear a Rubyist reverentially refer to message-passing and Smalltalk, I'm pretty sure no one I ever discussed that with ever envisioned anything like Akka. I certainly didn't. `receiver.send(message)` in Ruby is to message passing as Ruby lambdas are to functional programming (despite lacking composition, currying, partial function domains, etc). Or switch statements are to pattern-matching. IOW, not really at all.
Which was really hard to appreciate as a Rubyist before experiencing it myself.
Have you considered Akka? Found it lacking somewhere maybe? Any direct experience with Storm? Do you get the same sort of "previously unknown to me but now obviously equally fundamental pillar of programming structure" sort of of vibe?
Just curious.
- perishabledave 11y agoBuilding off the parent's comment, there's a Graphql library for Elixir. If you aren't familiar, just like Akka it uses the Actor concurrency model and has the proven ability to scale since it runs on the Erlang VM. https://github.com/absinthe-graphql/absinthe/ https://github.com/absinthe-graphql/absinthe/
- merb 11y agoActually setting up a Actor come's with a cost. However akka has a great streams library now. Which is way cheaper for basic pipelines.
- ssmoot 11y agoI'm not sure what you're referring to about cost. Maintenance? Performance?