Architecture Weekly #96
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.
WARNING ๐บ๐ฆ
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! ย
Highlights
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.
#books #bestpractices
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 :)
#db
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.
#sre
Follow-Up
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.
#performance #reliability
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. ย
#documentation
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!
#microservices #paper
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.
#ai
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.
#serverless #dataengineering
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.
#kubernetes #k8s