[HN Gopher] Bastion - A Highly-Available Distributed Fault-Toler...
___________________________________________________________________
Bastion - A Highly-Available Distributed Fault-Tolerant Runtime for
Rust
Author : ibraheemdev
Score : 101 points
Date : 2021-03-01 16:37 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| RcouF1uZ4gsC wrote:
| Seems very interesting. Seems like doing Erlang OTP in Rust. But
| this is one of those projects where a simple tutorial would be
| super helpful. WhatsApp is famously written in Erlang. Perhaps, a
| simple tutorial of building a distributed chat backend using this
| library/system would help a lot of people see how this would be
| used.
| qeternity wrote:
| I've read the readme, and still not entirely clear. I know it's
| not a 1:1 analogy but it this effectively a distributed task
| queue?
| echelon wrote:
| It looks like an Erlang-inspired Actor system, but I've never
| had any experience with this type of programming model, so I
| don't know what its benefits are.
|
| It'd be nice to have a few code snippets geared at newbies in
| the README as well as a pointer to blog posts explaining why
| actor-based systems are great.
|
| I want to investigate this, but I don't have the time to
| research any of this right now, and none of that information is
| right in front of me.
| marshray wrote:
| Nice talk on the simple and powerful error handling philosophy
| enabled by this approach:
|
| Crash Course with Bastion-- Mahmut Bulut
| https://www.youtube.com/watch?v=IsBNjJBlA1E
| jspaetzel wrote:
| This sounds cool. I don't understand why it's named Bastion
| though, that name already has pretty specific technical meaning
| to me which seems unrelated.
| ibraheemdev wrote:
| Bastion means "a well-fortified position." I think this is
| meant to highlight the fault-toleranceness of the runtime.
| junon wrote:
| Weird title (and full disclosure, I've only read the title).
|
| 1. How can a programming language runtime have characteristics of
| dist-sys?
|
| 2. HA + FT = susceptible to netsplits. That's not always
| desirable.
|
| 3. What does "distributed" mean? MP? Or SOA-type of distribution?
|
| Titles like this always bother me with new languages because it
| feels like they're trying to fit in as many buzzwords as
| possible.
| infogulch wrote:
| I mean, how else are you supposed to write a title describing a
| project whose goals include such ideas? I think it's reasonable
| to have some additional explanation to justify it, and skimming
| the linked Readme satisfied me (as much as skimming can) that
| these terms are justified enough.
| staticassertion wrote:
| > (and full disclosure, I've only read the title)
|
| Is there a way to just get posts like this deleted?
| junon wrote:
| Flag it, sure. But it's a comment about the title. Others
| also have issues with the README, too, which I read directly
| after commenting and also found to be... strange.
|
| Also, there are a lot of critiques about the tech itself -
| the fact that it's an at-most-once guarantee, the fact that
| the actor model doesn't work well in practice unless you
| model them more like traditional services, etc.
|
| But my comment was just about the title. If you think it's
| dumb, that's your opinion.
| swsieber wrote:
| How would you describe elixir or erlang, wrt to the distribed-
| ness of BEAM?
| capelio wrote:
| You could have read the entire README in the time you spent
| posting something based off your assumptions.
| abrookewood wrote:
| "If you want the smell of Erlang and the powerful aspects of
| Rust"
|
| Example: use bastion::prelude::\*;
| #[fort::root] async fn main(_: BastionContext) ->
| Result<(), ()> { println!("Running in Bastion
| runtime!"); Ok(()) }
| outside1234 wrote:
| This is one of those projects where there are lots of great
| words, but honestly, a simple code example would speak a thousand
| more in terms of helping people understand what's possible and
| how it works.
|
| I read through this and their documentation and literally have no
| idea what this feels like to the developer or how to start.
| ibraheemdev wrote:
| The readme links to a getting started example [0], an example
| directory [1], and their website has a couple of examples as
| well [2].
|
| 0: https://github.com/bastion-
| rs/bastion/blob/master/src/bastio...
|
| 1: https://github.com/bastion-
| rs/bastion/tree/master/src/bastio...
|
| 2: https://bastion.rs/
| outside1234 wrote:
| Great - if you are a contributor, I'd recommend hoisting that
| HelloWorld example up to the home github page and talking the
| arriving new user through it.
|
| I have a hard time framing what this does exactly even with
| the examples and need subtitles. :)
| eternalban wrote:
| Politely :) I would like to know your experience level with
| distributed F/T systems. I ask because they are not just
| throwing around buzz words: they are being quite precise
| with defining their platform. I skimmed that readme and it
| was quite clear, and in fact 'Bastion Executor' bit aroused
| a bit of Rust envy.
|
| Some follow up questions for me would be around the
| messaging guarantee (AMO) and what sort of effort is
| required to, say, implement OTP semantics in Bastion.
|
| Here is Erlang OTP's doc with code snippets for your
| comparative reference:
|
| https://erlang.org/doc/design_principles/des_princ.html
___________________________________________________________________
(page generated 2021-03-01 23:01 UTC)