Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Can someone elaborate use cases for this?


To provide context, understanding this requires a little bit of background knowledge about concurrency paradigms.

In concurrent programming, there are a few mental models/approaches you can use to achieve it. Each of them have different "values systems" and tradeoffs, if you will.

In a nutshell, you have:

- Locks (Mutex/Semaphore)

- Communicating Sequential Processes

- Software Transactional Memory

- Actor Model

The Actor Model is a particularly powerful paradigm because it isolates processes and works via message passing and spawning. The reason why Erlang/Elixir are fault-tolerant is because of the BEAM's process model, any given process (more or lesss) can fail and it's not a problem due to isolation.

What this library allows you to do is architect applications in ways such that they are much more resilient to failure and easier to scale out + parallelize/distribute.

It doesn't have to be a networked application either, any code process can be an actor. It applies to any software.

If you want a great overview of the Actor model, there are some slides here which do a fantastic job of illustrating it:

https://cs.nyu.edu/wies/teaching/ppc-14/material/lecture10.p...


Do you have any good resources in learning more about these models / approaches?


I’ve only skimmed this, but it seemed reasonable.

https://pragprog.com/book/pb7con/seven-concurrency-models-in...


There's a whole section in the repo for examples and use-cases

https://github.com/bastion-rs/bastion/tree/master/bastion/ex...


Not knowing anything about Rust, I would imagine similar as those of Erlang's. Basically when you need servers than communicate with each other.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: