Ask HN: Where can I see many examples of real companies' software architecture?
I want to broaden my horizon regarding how things are solved in the real world. Other than some very high-profile companies (like Netflix, github) and companies that I've worked at, it's hard for me to find easily digestible (20-60 mins) examples of actual working architecture of differently sized companies from different business verticals.
105 comments
[ 4.8 ms ] story [ 172 ms ] threadOh and I’m pretty sure I’ve seen GitHub Enterprise too.
https://martinfowler.com/ but I'm not sure if he touches the real world sometimes, it all feels very academic rather than pragmatic.
I wonder if you'll find "good" outcomes though, it seems to most startups or companies bumble their way to an architecture that works for them. It might not be correct but it might be best way to build a company without architecting everything too much up front.
Just curious, last time I happened to read anything from Thoughtworks was quite a long time ago.
Additionally, there is a “This is my architecture” series on YouTube where AWS interviews users.
https://youtube.com/playlist?list=PLhr1KZpdzukdeX8mQ2qO73bg6...
https://aws.amazon.com/architecture/this-is-my-architecture/
only half joking
Like most things in software engineering, it's qualitative and empirical - but also has very strong potential to function as a supporting "first principles" theory for so many things.
Conway - "How committees innovate"
http://www.melconway.com/Home/pdf/committees.pdf
I think this paper has a fantastic corollary in Peter Naur's "Programming as theory building" which triumphantly explores the implications of institutional knowledge in long term software maintenance. https://pages.cs.wisc.edu/~remzi/Naur.pdf
;)
http://aosabook.org/en/index.html
A good example is Scalable Web Architecture and Distributed Systems by Kate Matsudaira:
http://aosabook.org/en/distsys.html
https://meta.wikimedia.org/wiki/Wikimedia_servers
At what level of scale might one expect to need what's going on in the "Edge Cluster", as opposed letting all the requests fly right into the app servers?
http://highscalability.com/all-time-favorites/
For example one of the most popular article on that site (which is part of their book now) is the article on Netflix. A lot of that was cribbed directly from my talks, but they never reached out to me to even check it over, and as such missed a lot of nuance and detail, things I didn't cover in my talks.
Same thing for the article about reddit -- also cribbed a lot from my talks.
It's a fine overview, but light on specifics. I've reached out a few times and some things have been corrected after the fact, but I don't know if the other articles have been reviewed.
So my point is, be warned that the articles on that site are not primary sources but are derived from them.
Their post about Tumblr's architecture [1] focused a lot about JVM-based services, HBase, etc which in reality was only ever used for a tiny subset of the backend. The huge section on "Cell Design for Dashboard Inbox" was especially ridiculous: the systems described there were literally a mix of complete vaporware and failed/canceled projects that never even got close to production.
As an early Tumblr engineer, I was really upset to read this nonsense. I spent several months of my life working very long hours to successfully scale the existing (PHP/MySQL) dashboard activity feed architecture in 2011-2012. It continued to be used as-is for many years after this interview, with lower latency and much lower cost than the proposed hbase/scala cell replacement.
And of course, engineering candidates being interviewed would always ask about this hbase cell architecture thing that they read about in High Scalability...
[1] http://highscalability.com/blog/2012/2/13/tumblr-architectur...
https://www.figma.com/file/6rFlomXiaKyE4pVQ9O7Qod/engineerin...
The purpose of each episode is for anyone to walk away having a reasonable understanding of why and how a company built and deployed their app with XYZ technologies without needing to know anything up front. There's over 100 different companies / individuals who were on the show.
I tried to make it as efficient as possible to get these details. There's a lot more detail than a few bullet points but it doesn't get super lost in the woods with a million low level details that's specific to 1 company. It's basically an hour or 2 conversation for each episode where we cover everything from building to deploying their app, lessons learned, etc..
Looks like it hasn’t been updated for a while though.
So I think this doesn't meet your requirements, but I like Tech Dummies Narendra L's YouTube videos [0]. He introduces big tech companies' systems in 30-60min videos and it's not difficult to understand.
[0] https://www.youtube.com/playlist?list=PLkQkbY7JNJuBoTemzQfjy...
I'm not sure all he says are correct, but at least he uses the target companies' engineer blogs, external articles, and some open-sourced part of systems (and list them in the video's detail section). His main targets are often big techs like Twitter, Uber, and Netflix, so I guess such documents are often available.
Something like "IT Architecture for the Forbes 500-thousand"