3 ms·
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 prese
by threeseed 4y ago
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.
- deleted 4y ago[deleted]
- ilyt 4y ago> 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. You ignored one possibility - that twitter engineers, or people managing them might be just incompetent and all of that might just be overly complex POS There is that weird disgusting trend to assume just because company got big that means the tech choices were immaculate, and not everything else there is to successful companies. You can make perfectly well doing company on totally mediocre product that hit the niche at right time
- threeseed 4y agoThe core of Twitter is open-source: https://github.com/twitter https://github.com/twitter They wrote Finagle which is a very well written and highly regarded Scala micro-service framework that is used by other companies such as LinkedIn, Soundcloud etc. Likewise Pelikan is an excellent caching service. We know that Scala is a proven, high-performance, type-safe language that is optimised for concurrency and stability. So it's not like their tech stack is written in Ruby and needs to be re-written in Rust or Go. It's already performant.