Architecture Weekly Issue #96. Articles, books, and playlists on architecture and related topics. Split by sections, highlighted with complexity: 🤟 means hardcore, 👷♂️ is technically applicable right away, 🍼 - is an introduction to the topic or an overview. Now in telegram as well.
It's already been a year and a half since Russia's crazy, brutal and unjustified war against Ukraine. We condemn this war and want it to stop ASAP. We continue this newsletter so you can advance your skill and help the millions of Ukrainian people in any way possible. If you want to help directly, visit this fund.
Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman, Egor, Roman, Evgeniy, Nadia, Daria and Dzmitry for supporting the newsletter. They receive early access to the articles, influence the content and participate in the closed group where we discuss the architecture problems. They also see my daily updates on all the things I am working on. Join them at Patreon or Boosty!
Software Engineering at Google eBook 👷♂️
Google is one of the biggest software engineering organisations in the world, which makes it peculiar from a scale perspective. As well as engineering practices! Great news is that the eBook showing how the engineering works there is available now for free.
Database Indexes 🤟
No need to explain that indexes in the databases help making your query more efficient. Find a great video with the explanation of how indexes work under the hood, what are LSM and B-Trees and many more! Don't forget that I have some content on data storage by databases as well :)
Service Level Indicators 👷♂️
SLA, SLO, SLI... common words in the SRE world. In this article Alex Ewerlöf explains what's the difference between a Service Level Indicator and Service Level Objective, what are the examples of SLIs and tips for working with them.
Cinnamon: Building a Mean Load Shedder 👷♂️
In a large system you need to carefully handle the spikes in traffic. With thousands of microservices it means shedding the load for example by deprioritizing the batch jobs. To do that at scal, Uber built a solution for load shedding, which principles and architecture you will find in the 2-part series starting with this blog post.
Cloud Architecture Diagram 👷♂️
Documenting your cloud solution is considered a best practice. However it comes with challenges: how to organize the diagrams? How to update them when the infrastrcture changes? How to make it efficiently? Find an article by Hava, where they share what to consider during the diagramming and also advertise their tool to do that automatically.
Lifting the veil on Meta's microservice architecture 🤟
Another paper analysis from Murat - this time on the microservices in Meta. Interesting to find they have 12 million service instances, and the number is doubled for the last 22 months, driven mostly by the new services. Another findings on topology and patterns applied inside!
Generative AI exists because of the transformer 🍼
I know, it's Financial Times, but still a good piece, which explains how an LLM builds understanding of the world by learning word context and how transformers helps improving that understanding.
The Architecture of Serverless Data Systems 👷♂️
The article by Jack Vanlightly simplifies the concept of serverless data systems. It talks about how cloud data services, like databases and event streaming systems, are designed without needing dedicated servers. Key points include separating storage from processing and the challenges of managing different users in one system. Examples like Google's BigQuery and Amazon's DynamoDB are used to explain these ideas. The article is a good resource for understanding modern cloud data architectures. For more details, you can read the full article here.
Kubernetes Autoscaling: Achieveing Scalability and Efficiency 👷♂️
So you know what is the difference between horizontal and vertical scalability. Kubernetes is capable to do that with pods using Horizontal Pod Autoscaling and Vertical Pod Autoscaling. The first will spin up more pods, while the second will modify the resource ask for a pod. Find a technical explanation of how to leverage those capabilities in your cluster.