The Evolution of Reddit’s Architecture (2017)
infoq.com
infoq.com
It's super slow to load.
It's slow to use (Scroll is sluggish. It loads giant images and puts huge autoplaying videos in your face. Comment function now starts an ugly html wysiwyg editor).
It misses features (outgoing links in the sidebars are gone).
It takes away screen estate by having a fixed element on top of the screen that stays there when you scroll down.
It's buggy (often weird overlaps between elements happen when you resize the screen).
It's confusing. When I click on a post I get a view that shows the post in an overlay of the page I was looking at. When I reload the page I suddenly get a completely different view with only the post.
It's almost unusable on my iPad (where I have to beg for the desktop version every time I open it because the mobile version is even worse).
It seems like they are still A/B testing it. Because sometimes I get the redesign and sometimes the original design.
Funny enough, I can see how the redesign might increase user engagement. The endless scroll with content right in your face is kind of addicting. It pulls you in a state of "I hate this. And I hate myself for using it. But I can't stop. I will just scroll down one post further.". So the experience is worse but the KPIs might be better. I bet this is how booking.com became the hell that it is.
I would love to see how the numbers of those tests look like.
How many users each day doesn't give a hoot about the redesign? 100's of thousands?
As far as I can tell the only way around that is distributed and/or not-for-profit social networks where the users are actually in charge. MWWA: Make the Web a Web Again.
Things were arguably better under Condé Nast. once they bought themselves from Condé Nast, they raised VC and all the dreams that go with it
What's also confusing is that when you're pressing the "send" button, it doesn't give feedback until after about a couple seconds or so. Meanwhile, thinking it didn't "take", you're frantically pressing "send" again a couple of times, which results in as many posts because reddit also doesn't have double-post suppression. Makes you really look like an idiot.
Hint: aggressive "get app" placing actually signals to never, ever load the app. I can't believe reddit's strategy of making the mobile web experience so annoying that folks are giving in to install the app is a winning one.
No idea why they don't remove the web app meta tag. It's terrible. Slashdot is literally unusable if you add it to your home screen.
However, it is frustrating because everything now takes an extra click. Mulireddits, changing from hot to new, or top all used to be right there. Now each of them are hidden behind a dropdown menu. I mean is Big Mouse an investor in Reddit and trying to make our mice wear out twice as fast?
Moreover watching the traffic stats it's clear that the majority of users access Reddit in the communities I care for do so through mobile apps where not only is it impossible to do nearly any form of differentiation, it's difficult to communicate community standards or other info, like FAQs to casual users.
So currently the most functional user interface that can effectively communicate all features available to communities is the old desktop one, which by design is now the least used. It's a farcical disaster.
I hate getting 5000 worthless push notifications and cluttering my phone with a bunch of apps.
For HN I use a web app, and it's good enough, but sometimes I wish I had a client that offered as many features as the reddit apps I use.
Welcome to the user-friendly to ad-friendly switch.
They went from being a tech-oriented/friendly company to a news-style company as soon as they were bought by a publisher.
An HN post a few days.
"Why Are Newspaper Websites So Horrible?"
https://news.ycombinator.com/item?id=17942237
It's not just the horrible redesign. Reddit changed for the worse in every way possible. The quality of content is pathetic. All you get is just political ads pretending to be reddit content and reposts. But the biggest disappointment is their change in ethos. Reddit used to support free speech, now they support censorship just like most publishers and media companies.
When digg screwed up, we had reddit to fall back on. Now that reddit screwed up, there is nothing else to fall back on.
"nothing gold can stay."
Let's at least praise reddit for having the sense to make the redesign opt-in.
Don't praise them just because you're in the control group ;)
Despite some questionable design decisions my main grip with the new design is that it often just does not work at all. I rarely alter default options in software but I had to use old.reddit.com quite often to even use the site:
- sometimes the whole page does not work because of cookie issues
- sometimes posts don't load (I have to manually refresh)
- sub's sidebars missing: there was often useful information (might be the job of the moderators though)
- unable to do local search (CTRL-F) due to endless scroll
Regarding my last point, Reddit is not the only culprit and many websites unfortunately switch to this style - hopefully at least Google keep their pagination - but I find it terrible.With traditional pagination you can CTRL-F for keywords, go to the next page, and repeat the process, but with endless-scroll content is usually loaded dynamically depending on your viewport, so it's nearly impossible to search in a reliable way.
The fact that Reddit even considered making this the default design for logged out users is laughable.
I'm a mod for a few subs and for that reason was forced to start using the new UI. Most of the sidebar can be developed to look and work similar to the old markdown sidebar, but without all the custom css styling.
I see the new UI as the a less dramatic version of myspace as the old, and facebook as new.* This includes but not limited to stripping out custom CSS. (You don't have to be a front end developer to style your sub anymore.) The reddit ecosystem as a whole will now look and function much the same everywhere. Some sub designs were getting out of hand. This gives Reddit execs and admins much more control and the lowly mod a lot less.
Alas the reddit mod is further relegated the jerk the community maligns for setting arbitrary rules and unfairly limiting free speech. Also a lot of the mod tools are streamlined, link/user flair, user access/banning, etc. I really don't like the look and feel of the new UI and after a month of constant use still prefer the old UI.
*(Avoiding any reference to dig 4.0)
Hey, /r/ooer is a treasure, and the redesign is a lesser beast for not allowing its like!
www.digg.com
The question is if these two things will happen, of course.
EDIT: another avenue of foot-shooting might be closing the API off from the unofficial reddit apps.
Sidebar content is often gems. Seems foolish to ignore it.
Like a big middle finger to communities.
What might those be? I suspect some VERY important goals of the re-design are:
INCREASE USER ENGAGEMENT - get users to stay longer, and if they leave, make it less permanent ... tactically:
• all external links open in a new tab now
• infinite-scroll
• simplify subreddit / multireddit management
INCREASE AD VIEWS & AD CLICKS - with users more engaged, monetize their attention:
• make subreddit designs far more uniform, with fewer CSS tricks to really change the layout / experience
• make it difficult / inconsistent (!) to try to do some impressive CSS design, to discourage subreddit managers from taking layout changes beyond a certain threshold
• make the "post" ads just a little less obvious and a little more enticing
• make the "post" ads far more common than before
---
I could be wrong on all these. I suspect I'm right on several.
But I am a user, how is it wrong that I don't prioritize the business goals in my assessment of the redesign? Their goals are obvious, and the person your replying to already acknowledged them anyway.
I think this is why Facebook, 9GAG and others are popular. People just want to binge content with the least amount of effort possible.
[1] Hard to believe that book came out 12 years ago
edit: s/shard/partition
[1] https://www.reddit.com/r/dataisbeautiful/comments/87q8pn/the...
Bookmark the version of your favorite sub-reddits for mobile use.
Manually edit https:www.reddit.com/post to old.reddit.com/post
OR
Use a chrome or Firefox extension on PC to automatically redirect reddit URLs to old.reddit.com version.
Problem solved for now
I've actually gone back to Digg for interesting stuff on the web. Interesting content, no comments and it usually has about 20-40 articles a day so I dont feel the need to check it every 5 minutes.
This just shows how little you actually use or understand Reddit. I'm not sure what I'd do without subs like r/economics, r/badeconomics, r/math, r/learnmath, r/programming, r/<insert programming language here>, any number of friendly and welcoming fetish communities (that aren't just about posting porn), r/fitness, r/keto, r/running, r/weightlifting, etc.
Reddit is just an unrivaled, incredible place where information is gathered and opinions can be shared and support given.
There were also a lot about message queues, cacheing, and ops related things in the talk.
I definitely recommend watching the entire video if you're interested in high traffic architectures.
I think many folks consider scaling and fast a success and scaling and slow/buggy a failure. Who wants to emulate failure?
The summary would seem to be that the first generation of developers built a monolith. A reasonably well scaling monolith, but only up to a point. Newer developers fear the blob and prefer Node to Python, so new development has been done in a cluster of menhirs of node around the python monolith.
The monolith suffered from lock contention because it was inadequately sharded across subreddits. They have now addressed this.
(Not mentioned: the redesign which shifts a large amount of CPU usage onto the client)
https://www.reddit.com/user/USERNAME/upvoted/ https://www.reddit.com/user/USERNAME/downvoted/
What database are you thinking that could store all of those and then I assume aggregate them ? Kind of curious about this proposed architecture.
The problem with Reddit isn't the subreddit home pages it's the article comment pages. There are so many of them, people routinely comment/upvote months old articles and the distribution is unpredictable so it can be difficult to know what to cache.
And there isn't a datastore on this planet that could handle an event log like what you are proposing. Reddit would receive hundreds of thousands/millions of votes a second.
Nitpick: According the the article, they receive 75 million votes a day. If their traffic was evenly distributed (which of course it isn't) that would be less than one thousand votes a second.
The key insight is that reddit still functions as you expect if you are seeing stale data from other people so long as your posts/comments/votes are visible when you navigate.
Shard the databases by subreddit and you will be able to horizontally scale the load. Use JS to post to a separate subdomain for each service. I.E everything under www.reddit.com/r/funny points to funny.reddit.com which can live as its own independent service.
Internally I would treat reddit as a group of individual high traffic sites instead of one massively trafficked site. Then you have another service that queries each site to build the main page.
Shard the databases by subreddit and you will be able to horizontally scale the load. Use JS to post to a separate
subdomain for each service. I.E everything under www.reddit.com/r/funny points to funny.reddit.com which can live
as its own independent service.
Internally I would treat reddit as a group of individual high traffic sites instead of one massively trafficked site.
Then you have another service that queries each site to build the main page.
this is terrifying to read, in that this is exactly what the media companies did for the last decade to try, and totally fail, to compete with facebook.having a unified platform is a competitive advantage.
also your "sharding and subdomains" trick is straight out of 2010 and a mix of irrelevant (everything's sharded now) and anachronistic (h2 is everywhere now).
also-also, you clearly have missed the best use case of reddit, which is to have unsub'd from all/most of the "default" reddits and replaced them with your own customized set.
you are optimizing for everyone reading the same thing (newspaper homepage) not everyone reading their custom thing (social network). that has been a proven losing strategy for a solid decade now, you could argue 2.
You need to make the distinction between UX and Operations. Everything the user sees still lives under the same structure as today but internally it is structured so that you don't overload yourself and if you do fail, those failures are isolated and don't take down the rest of the site.
Everyone is reading the same thing on reddit, just different combinations of the same thing.
this is categorically untrue, you don't seem to understand reddit. Reddit is just a combination of multiple newspapers masquerading as a single custom newspaper.
that is exactly the anachronistic thinking that leads you down this path.its movable type vs wordpress all over again. wordpress won.
the engineering constraint of pre-calculating caches is worse, in the long run, than the occasional outage for casual/non-logged-in users. its optimizing for the wrong audience, it is a long slow path to failure.
Reddit's data is shockingly small[0], cache eviction should be a non-issue as it would be trivial to keep it all in ram.
[0] https://www.reddit.com/r/datasets/comments/65o7py/updated_re...
This way you are reducing the number of times you are busting the cache unnecessarily since it doesn't matter if you are getting up to the second vs up to the minute updates from reddit.
The problem is that when you do have a cookie, until recently there was no good way for the CDN to know if you needed data from the servers or not, so all requests with cookies got forwarded to the servers. In most cases, you'd still never hit the database on a home page load, except possibly to read your user data out and find out what subreddits you subscribe to. But you may have a failed page load because the servers were overloaded for other reasons.
I believe they are now fixing this by doing more on the frontend, allowing for caching of logged in requests as well.
The majority hated it, rebelled against it, said that the change in the way content consumption was focused on images more than text would push out quality content in favor of image macros that can be voted on quickly, that the quality of the people using the site would drop, etc, etc.
10 years later, I still feel all of those concerns were valid and correct, however these changes did not hurt reddit, and in fact the company grew by leaps and bounds.
And even now, I still share the same sentiment as you and others, but I think whether or not these changes are actually detrimental to reddit as an entity are yet to be determined.
You compare it to having added thumbnails and whitespace, but this is a complete site rewrite, both in the backend and the frontend. Nothing to do with what you mention.
Personally I will also quit once they force us to use the redesign because I find it to be slow and, let's say, not "productive" enough.
Maybe not in numbers, but the user base changes. Users who value in depth conversations may feel alienated by the changes of reddit, pushed away by such a redesign.
I also feel very much alienated by the pushy (almost dark pattern) "use our mobile app" popups on mobile. AMP made that even worse, before that my phone asked me if I wanted to open my reddit app (not the official one), now I get the mobile AMP page with a big "Continue" button, which does not continue to the mobile page, but to the official apps store page.
Reddit moved its focus away from discussions, towards beeing an advertisement platform. I've quit it because of that
If the end game for reddit is making advertisers happy it probably doesn't matter much.
>Reddit moved its focus away from discussions, towards beeing an advertisement platform.
It was always an advertisement platform. It's the entire business model. They just needed to be more subtle about it when they were in the bootstraping phase not to drive people away. Now that they managed to reach the critical size where the network effects effectively means that a large portion of their user is captive they can move to monetizing more aggressively.
Reddit as a business does not want to be a discussion platform.
In my opinion it will succeed, but it does so whilst providing mixed value to me, it has destroyed many small communities by amalgamation and then normalising them.
Subreddits related to my core interests are useless. Overrun by an endless stream of amateurs and the lack of a consistent user base makes it draining to use and fails to reward involvement at a high skill level (where you need to make repeated connections with others at a high skill level and break the norm).
However subreddits related to passing interests are brilliant, the provision of novice level instruction is very common and normally of high quality (due to catering to a constant stream of newcomers and a tendency towards the norm).
Reddit is group think.
Over the years I feel like the entire experience got worse and I might even go so far as to put in question if it isn't a net negative for society. The flood of shallow and biased information has pretty much killed quality in every platform. The signal to noise ratio is abysmal. Hate mongering is rampant world wide fueled by social media.
I don't think society is mature enough and ready for this much level of interconnected discourse. Yet here it is. It will be a while until we adapt I believe.
That way the new mild users who don't know the old design start invading the site and the day they delete old.reddit they'll only lose a minority of users.
IMHO the real bad change the last few years (leaving closing subreddits aside) was the removal of the number of upvote/downvote.
I've never been like this. I've actually really liked virtually all of the widely panned UI redesigns over the years: iOS 7, every version of Windows, every evolution of Facebook.
However, there have been 2 redesigns that even I didn't like: the Digg redesign, and this Reddit redesign. Both are objectively bad. We know what happened because of the former. It remains to be seen what will happen due to the latter.
Same. And I still hate the new Reddit. Not because of the new design but because of how slow it is and because they have shifted CPU usage from their servers to my computer.
I think this is only partly true.
Most of the time new designs come with a few side effects like being really slow or buggy, but then over time those things get ironed out.
For example, the new gmail UI is a nice improvement but it's buggy. Clicking into an email won't flag it as read if you leave the email quickly so you end up with a bunch of unread emails that you actually read which in turn makes me hate the new UI due to a bug. I'm concerned because this was around way back when they announced the opt in beta and it's still not fixed after forcing it on users.
I work for a major UK community site and we get a furious backlash against even the slightest of changes. And sometimes against things that users think have changed but actually haven't.
(Very) generally we as humans hate having to think. Figuring out a change to something we use regularly means all our automatic shortcuts no longer work and we have to start paying attention.
It's like how annoying it is when they keep moving stuff round in the supermarket but *100 worse.
I didn't care much for the thumbnails and changed my preferences to disable them. Even though I agree that image macros/memes diminished reddit's quality I must confess to being a party to consuming (and upvoting) these posts. HN fills this gap well, IMO.
IMO this new redesign is different from that one. That one was much more cosmetic. Impact-wise, this is somewhere between when they added support for comments and that thumbnails change. The pace of the page rendering / reaction is significantly different from the baseline and it changes how we consume reddit.
Sure, you'd probably lose the option to vote on posts, but for the subreddits I frequent I don't really care.
It would also let users use a client of their choosing and never having to worry about ghastly site updates again.
Maybe I'll eventually get around to it, but for now old.reddit will have to do.