[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)