Timeline of Slack’s Tech Stack Evolution
stackshare.io
stackshare.io
Like LAMP for Slack, Discord also used MongoDB prototyping in the first few years, but while they prototyping they prototype in a manner they can easily migrate to Cassandra later. Then they successfully migrated to Cassandra. This is brilliant.
I remember the React community migrated from Slack to Discord[0], I guess one of the reason could be the performance. According to the blog, at that time the team only have "14 people full time", which means they've got a very high velocity, amazing.
I didn't find any summary of their whole tech stack but there are several insightful articles from their blog like[1].
[0] https://reactjs.org/blog/2015/10/19/reactiflux-is-moving-to-...
[1] https://blog.discordapp.com/how-discord-stores-billions-of-m...
I'm pretty sure the Reactiflux channel exceeded 50k long time ago.
Looking at the server right this second, I see 2800 online, and 72.5K total members.
We got kicked off Slack because we got up towards 10K users signed up, and Slack locked us from having any more people join. Clearly, we weren't a good fit for their business model. Worked out well for us - we've loved Discord ever since we switched over!
Every time I use Slack I found the business model is not as generous as Elixir - there are too many constraints for free users/organizations.
I’m currently working with Flask/Postgres and it’s simply lacking when you need to scale it (in terms of performance/team size/code size) and there’s not great tooling to take it to the next level. Can’t wait to get back to Laravel on my next project.
I am surprised you said you found flask lacking though, because I would have thought they were similar. Can you say more about what you found to be lacking in terms of performance/team, size/code and tooling?
There are lots of Flask extensions and other methods to extend it (relevant docs page: http://flask.pocoo.org/docs/1.0/becomingbig/), but it's a framework that practically defines itself around the fact that it doesn't include anything. Pyramid or Django might have been better options.
RAM and battery abuse are the main complaints about their app and I'd think that would improve both of them.
Flickr: They first built a game, it didn't do well, so they pivoted to focus on the image hosting they built for the game.
Games are hard.
I was sure there were more examples, though.
Games are hard.
This is almost the exact thing that happened with Butterfield's first venture, Flickr, which was built on a web platform they wrote for a multiplayer online game called Game Neverending (which is why Flickr URLs have/had "gne" in their URLs).
I would love to see something like this for other successful companies.
Too often, we see the tech stacks of famous firms, but not the stacks that preceded them.
It would be very interesting to note if, say, 80% of unicorns started their life as RoR, or PHP projects. It tells you one of two things:
1. Which frameworks were popular n years ago (where n is the average time it takes from launch to unicorn)
2. Which framework actually helps you get an MVP off the ground
I'm not going to speculate on what the advantages/disadvantages would have been as I honestly have no idea. I suppose if a competing product comes out that is XMPP-based then maybe we'll have some good comparisons. ;-)
I'd always incorrectly assumed they'd started off with a modified IRC stack of sorts & am pleasantly surprised that it isn't the case.
Instead of a massive, complicated back-end, imagine if each Slack 'installation' (i.e. customer) had their own set of services, distinct from one another.
Even with 10K users each for the larger customer accounts, I'd imagine that 'customer backend' might not have be super complicated.
i.e. I wonder if there's an opportunity for systems such as these to 'scale horizontally' instead of vertically, whereby each customer has their own little set of services.
In this manner 'managing billions of messages' wouldn't seem so daunting, rather, no more daunting that some 3rd party running several thousand MS Outlook instances, one for each customer.
[1] https://www.zdnet.com/article/slack-brings-shared-channels-t... [2] https://sec.report/Document/0001628280-19-004786/
Edit: here's a link to others with the same issue: https://www.reddit.com/r/Slack/comments/bj3ltt/windows_users...