Earlier quoted context omitted.
I'm a single core server, and I have a queue of tasks. I can process them one at a time. But say I don't want to work on one task at a time. I might decide to do some database operation and while I'm waiting for the response to come back, I might decide to do some work on a separate thread so I'm not idling. We now have concurrency. If I add more cores, and my program is coded to be able to take advantage of that, I…
I enjoyed this explanation, thank you. Curious to know what the differences are vis-a-vis big data tools like Hadoop or Spark; as a user of those tools I recognized a lot of common failure patterns in the example above. Thanks!
You wouldn't use Erlang/Elixir for doing calculation because that's just not what it's good at. But you might use it as something to manage jobs in a larger distributed system perhaps. Though my suspicion there is you may run into tooling impedance mismatches as you get deeper into the failure modes.
Sorry I can't speak more knowledgeably about that. I'm curious if any WhatsApp folks are around and can comment on if they ever made their Erlang systems talk with their Hadoop/Spark stuff and what that all looked like.