[HN Gopher] Rama is a testament to the power of Clojure
       ___________________________________________________________________
        
       Rama is a testament to the power of Clojure
        
       Author : winkywooster
       Score  : 56 points
       Date   : 2024-04-30 18:48 UTC (4 hours ago)
        
 (HTM) web link (blog.redplanetlabs.com)
 (TXT) w3m dump (blog.redplanetlabs.com)
        
       | metadat wrote:
       | _> Rama can build end-to-end backends at any scale on its own in
       | a tiny fraction of the code. At its core is a new programming
       | language implementing a new programming paradigm.._
       | 
       | Grand claims, but where are the super powerful demo apps? The
       | getting started docs are a trickle of info..
       | 
       | https://redplanetlabs.com/docs/~/operating-rama.html#_access...
       | 
       | The "demo gallery" has a few cherry picked examples, but I don't
       | see how this fulfills the claim of a "new paradigm". I wanted to
       | be blown.. but this ain't it.
       | 
       | https://github.com/redplanetlabs/rama-demo-gallery
       | 
       | Oof.
        
         | nathanmarz wrote:
         | Check out twitter-scale-mastodon, which is an implementation of
         | Mastodon's backend from scratch that scales to Twitter scale.
         | It's more than 40% less code than Mastodon's backend and 100x
         | less code than Twitter wrote to build the equivalent.
         | 
         | https://github.com/redplanetlabs/twitter-scale-mastodon
         | 
         | https://blog.redplanetlabs.com/2023/08/15/how-we-reduced-the...
        
           | metadat wrote:
           | > Running on a real cluster
           | 
           |  _> Until Rama is publicly available, the only way to get
           | access to the full Rama release is by applying to our private
           | beta._
           | 
           | I thought it was coming out last August? What happened?
           | 
           | (As per your link,
           | https://blog.redplanetlabs.com/2023/08/15/how-we-reduced-
           | the...)
           | 
           | Edit: @nathanmarz that's cool you have enough interest to
           | keep things moving with it being private. I'm only interested
           | in open solutions for this domain, though. IMO, accepting
           | lock-in is a lot to ask. Best wishes ~ MD
        
             | nathanmarz wrote:
             | We released the public build last August, which can be used
             | to experiment with Rama. Details on that are at the link
             | below. Otherwise, we're still in private beta and access to
             | the full Rama release to run real clusters is just for
             | private beta users.
             | 
             | https://redplanetlabs.com/docs/~/downloads-maven-local-
             | dev.h...
        
           | finnh wrote:
           | > These numbers are a bit better than Twitter's numbers.
           | Because of how unbalanced the social graph is, getting
           | performance this good and this reliable is not easy. For
           | example, when someone with 20M followers posts a status, that
           | creates a huge burst of load which could delay other statuses
           | from fanning out. How we handled this is described more
           | below.
           | 
           | Huh. I haven't written myself a twitter, but I've always
           | assumed that this problem is solved by a mix of fan-on-write
           | and fan-on-read. Most people are fan-on-write, but those with
           | a follower count > $THRESHOLD are fan-on-read.
           | 
           | The fan-on-read set is small enough to be easily cacheable,
           | so the extra reads required to service a follower's feed are
           | more than compensated for by the fact that the content is in
           | RAM in a cache.
           | 
           | Sounds like RedPanda went exclusively with fan-on-write. I'd
           | be surprised if Twitter does the same - but it sounds like OP
           | has more knowledge about this than me, so I'm happy to be
           | educated!
        
             | nathanmarz wrote:
             | The chronological timeline at Twitter fans out on write.
             | This makes sense when you consider that the most important
             | application metric is the latency to load the timeline.
             | That latency is a lot lower when you only need one query on
             | the materialized timeline rather than a ton of queries for
             | everyone you follow.
        
         | ntonozzi wrote:
         | Here's an example of the backend code:
         | 
         | https://github.com/redplanetlabs/twitter-scale-mastodon/blob...
         | 
         | It certainly looks like it does a lot with their DSL, but as a
         | newcomer it's really hard to parse.
        
           | nathanmarz wrote:
           | I suggest starting with the tutorial and the heavily
           | commented examples in rama-demo-gallery, linked below.
           | 
           | https://redplanetlabs.com/docs/~/tutorial1.html
           | 
           | https://github.com/redplanetlabs/rama-demo-gallery
        
         | geodel wrote:
         | Well there is whole bank transfer implementation there and
         | thoroughly commented too. Some entrepreneur can take this and
         | run with it to create next generation banking platform.
        
       | jimberlage wrote:
       | Is anyone using Rama at scale? This isn't a complaint about it
       | being closed-source, people have to make their money somehow. But
       | I've seen a lot about Rama's scale when the only things to check
       | the claim are a private beta and a single-process dev build.
       | 
       | I'm super curious to hear from people who have tried it for
       | larger projects!
        
         | nathanmarz wrote:
         | A few of our private beta users are using Rama at larger scale
         | (>1M appends/second). We'll be publishing case studies
         | eventually.
        
       | MH15 wrote:
       | I think we've spent a lot of time looking at backend and frontend
       | web app development as separate. In my work, TRPC
       | (https://trpc.io/) solved this. I hope others in different
       | frameworks find a similar solution soon.
        
       | epolanski wrote:
       | > Lisps have great control over what happens at compile-time,
       | which lets you do incredible things.
       | 
       | > Lisp programmers have struggled ever since it was invented to
       | explain why this is so powerful and why this has a major impact
       | on simplifying software development
       | 
       | I've written some Common Lisp, Scheme, Racket.
       | 
       | I like them.
       | 
       | But what op defines as a feature is actually what kills all those
       | lisps but Clojure where macro abuse is rare.
       | 
       | Everybody implementing their abstractions, every library
       | implementing their own language, I like those features, macros
       | are fun, but it just doesn't scale neither in open source and
       | even less at work.
       | 
       | Haskell to some extent too suffers the same issue, simple Haskell
       | is nowadays a dead project, but every single project has
       | different language extensions, syntax, etc..
       | 
       | I feel like Lisp and Haskell attract people that love programming
       | more than shipping code.
       | 
       | Which is why at the end of the day, php has more killer software
       | than all those languages combined.
        
       ___________________________________________________________________
       (page generated 2024-04-30 23:00 UTC)