But.. what is this?
I read the landing page and browsed a couple examples and I have no clue what I would use it for.
Would it be a pile of distributed workers handling jobs? Sort of like pushing a job into a job queue and having a bunch of workers consume jobs?
If that's the case, what are some reasons I might choose this Bastion model over a more traditional JobQueue <-> Worker model?
Thanks to any replies. I feel I should be interested, but I'm confused :)
"...It supplies actor-model-like concurrency with a lightweight process implementation and utilizes all of the system resources efficiently guaranteeing of at-most-once message delivery."
It might be a single process, pile of workers, a bunch of http servers dispatching requests, various middleware layers connected with asynchronous boundaries. With all these built on top of crash and fault recovery.
For more information what it provides please take a look to my latest presentation at Rust Berlin: https://slides.com/vertexclique/crash-course-with-bastion#/
We proudly take Erlang's runtime model and implemented it in Rust. Moreover, we are currently working on distributed carrier protocol to make Bastion form a cluster, exchange data and recover from partial failures in distributed workloads too.
Local failures are recovered and we have built-in lifecycle management.
Maybe after these words you might want to take a look: https://github.com/bastion-rs/bastion
You can write a fully fault-tolerant program with our macro mechanisms too: https://github.com/bastion-rs/fort
Here our distributed protocol repository: https://github.com/bastion-rs/artillery
And our landing page: https://bastion.rs/