It probably wasn’t a big deal when it was a niche project until Twitter imploded. Then all the public instances got overloaded with new users and the limits became obvious.
A better design is Lemmy which is written in Rust so it has far more scalability. It’s compiled and because it’s tokio / actix based, it can also do a lot more stuff asynchronously so it’s not spawning thousands of threads to cope with concurrent requests.
@towerful I mainly program in Go, so when I see all that extra software I notice how much easier it is when I get to just rely on the Go runtime. It does a lot of the heavy lifting done here, but the resulting code is not as clean. Actually just today I read through Mastodon’s code to track down a bug in my in-progress ActivityPub service (in Go) and found the Ruby really easy to navigate!
and therefore scales terribly ;;
It probably wasn’t a big deal when it was a niche project until Twitter imploded. Then all the public instances got overloaded with new users and the limits became obvious.
A better design is Lemmy which is written in Rust so it has far more scalability. It’s compiled and because it’s tokio / actix based, it can also do a lot more stuff asynchronously so it’s not spawning thousands of threads to cope with concurrent requests.
@pkill Yeah seems that way, judging by their scaling up documentation: https://docs.joinmastodon.org/admin/scaling/
Although hey, it all depends on a whole bunch of stuff written in super optimised (and kinda scary) C !
@programmer_humor
Those docs look pretty easy to scale mastodon. What am i missing?
@towerful I mainly program in Go, so when I see all that extra software I notice how much easier it is when I get to just rely on the Go runtime. It does a lot of the heavy lifting done here, but the resulting code is not as clean. Actually just today I read through Mastodon’s code to track down a bug in my in-progress ActivityPub service (in Go) and found the Ruby really easy to navigate!
@programmer_humor