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