Looks like Elon tries to act like a chief architect of Twitter[1] even though he still seems to confuse that 1000 RPCs are serially sent[2] from the app[3]? Why don't we do a public technical design interview session for Elon to see if he is technically competent enough for architecting one of the most famous social network? :sigh:
Related to this discussion, Elon made a tweet saying there are over 1200 microservices. Are there any tech talks or explanation videos showing a rough outline of what all these microservices do or how they're broken up? It's difficult to wrap my head around that amount.
important to note, that there is a natural very steep Pareto distribution going on here, meaning probably 10-50 of these services are responsible for 90-95% of the activity and features, and on the long tail you have basically one off reporting "services" (queries)
I can’t speak to Twitter specifically, but Monzo are a company somewhat famous for their thousands of microservices which they’ve written about, so that might provide some insight to how a company could use so many: https://monzo.com/blog/2022/06/24/redefining-our-microservic...
Previously worked at Monzo and the way their monorepo is designed is in retrospect incredibly solid, there is pretty much zero feature overlap between different services which is something even Google never managed to solve completely when I worked there.
Definitely had issues with abandoned / zombie services, but nothing that ever actually got in my way.
At my work, we have a system about that large. We have about 50 or so capabilities/domains. Some of the bigger ones, like Orders or Quoting have 100s of services. Some may only have a few dozen.
Many of these capabilities have their own “gateway” that defines an API for inter-capability communication.
Many of the modern features rely heavily on async messages and consumers that process those messages and events.
Some of these capabilities already existed as modules in a monolith desktop application from the 90s that has 1000s of “screens”.
for example, there's one service to say that you have new messages, and then there's a different service that counts how many messages you have. or one microservice who's only job is to send sms 2fa codes. apply that level of division to the whole site and 1200 seems entirely possible.
[1] https://twitter.com/elonmusk/status/1592177471654604800 [2] https://twitter.com/elonmusk/status/1592178814993383425 [3] https://twitter.com/elonmusk/status/1591853644944932865