Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Which is sorta ridiculous considering that it's definitely not among the most complex of the Web apps out there. Even late competitors like www.shoutem.com are much more complex as they allow for a bunch of Twitters to be created on the same platform.

The only complex thing about Twitter is its size, and I bet their developers are working round the clock just to keep it from falling apart.



sort by: page size:

What your saying is true for almost every web app. I don't see any reason to justify Twitter's complexity that requires 1000 engineers. Scale is such a weak argument since their entire product paralelizez very easily.

Way too complex stuff for a minimalistic service like Twitter.

> Twitter the server is hard and requires hundreds, twitter the client is easy and requires 1.

You are severely understimating the amount of work that goes into a (web) client application that is being used by as many people as Twitter's - UX design and testing, accessibility, internationalization, browser compatibility (including lots of exotic ones you may never have heard of)...


Because that's a ludicrous amount of code for almost anything and Twitter has a relatively limited scope.

I'd be surprised if anyone thought building Twitter with similar scalability would be easy. Sure while you cold fit it into 1 mySQL DB it would be easy to get the basic features down with a much simpler UI and no API. Past that though they would be vastly underestimating the work.

It still seems bizarre to need two thousand software engineers for something whose functionality is as simple as twitter.

Yes, Twitter's backend is actually quite sophisticated.

It's one thing to build a very small Twitter clone for you and your friends, it's quite another to scale that up to hundreds of millions of users and keep everything running smoothly.


I think the specific situation with Twitter is that it takes a lot more people to create and update a system of this size than it does to merely maintain it. They simply no longer have the capacity to make a large new product at this point, but even a skeleton staff is enough to keep the existing product running.

It feels like over engineering for most projects, and yet another thing for new hires to learn.

I can't judge Twitter's design without seeing it, but I don't like the sound of this:

"the simplest web page on twitter.com requires collaboration of dozens of network services speaking many different protocols"

Simplest page? Dozens of collaborating services? Many different protocols?

I'm skeptical this is the most elegant architecture possible that meets the requirements of their simplest web page.


They're not incompetent, they're just developing a web browser. Which means using all kinds of gnarly bleeding-edge optimization techniques that introduce massive complexity just to get Twitter to display 140-byte messages with reasonable performance, not to mention dozens of nasty parsers for nasty data formats. Basically, what I'm saying is that the web sucks. I think web browsers are probably more complex than operating systems at this point.

I'm shocked it's only 25. I would have expected an order of magnitude more given the number of features and sheer reach of Twitter. That can't possibly be right.

Not sarcasm btw. I think you're underestimating how much work there is.

First, there are a ton of features: lazy-loading tweets, retweet, favorite, lists, all the stuff related to analytics, settings. Simply maintaining that stuff with security updates and bugfixes is a significant commitment.

Then there's accessibility and localization to consider.

Next there's fix and feature experimentation. They probably don't release new features and fixes to everyone at once. Instead they roll them out slowly, or show different versions to different users, compare, analyze and iterate.

Browsers update approximately every 6 weeks, so that's something to keep abreast of. At Twitter's scale, a CSS rendering bug that affects 0.1% of sessions will be seen by hundreds of thousands of users.

And it's not just "a Twitter client". It's THE Twitter client - the canonical one. It has to have higher standards of performance, quality, and reliability than a random Twitter Android or iPhone app.


Still sounds like quite a lot to maintain a project with the complexity of twitter.

Yes, but that's if you engineer it that way. You're just saying it doesn't have to be a complex system.

But Twitter is. I agree it doesn't have to be, but it has been for like 15 years or whatever.


Your point makes sense if you have no idea how Twitter works.

It needs to assemble tweets internally, sort them with an ML model, add in relevant ads and present a single response to the user because end-user latency matters.

And each of these systems eg. ads has their own features, complexities, development lifecycle and scaling requirements. And of course deploying them continuously without downtime. That is how you end up with disparate services and a lot of them for redundancy reasons.

I know you think you’re smarter than everyone at Twitter. But those who really know what they are doing have a lot more respect for the engineers who built this insanity. There are always good intentions.


I have always wondered this too. On the surface, Twitter doesn't seem like a very elaborate service. I'm sure there's serious thorny scaling problems to deal with. But how many engineers does that really take?

Making a Twitter clone that could handle 10 users is indeed quite trivial. Making one that would handle 0.4M+ users is not.

Twitter is more like a mouse clicking game with very little interaction per mouseclick.

They still haven't implemented threading and free third party native clients.


Mastodon or other implementation isn't scalable like Twitter.

I'm really curious what you think is so hard about Twitter.

As far as I can tell it is basically a CRUD app with some real time analytics to surface some trends.

You said some stuff about Events bubbling, like if I Retweet something you seem to think there's a lot of complexity there. But as far as I can figure all that does is create a new row in a database somewhere and when someone who follows me fetches their feed, my new retweet gets included in there.

Aside from the scale, what's hard about it? Am I completely missing something?

next

Legal | privacy