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.

Software Engineering at Google

#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.

Service Level Indicators
Introduction to SLI, examples, counterexamples and tips

#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. Β 

Cloud Architecture Diagram
Master cloud diagramming with our in-depth guide on visualization best practices. Explore how Hava.io automates and elevates your cloud architecture diagramming strategy.

#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!

Lifting the veil on Meta’s microservice architecture: Analyses of topology and request workflows
This paper appeared in USENIX ATCβ€²23 . It is about a survey of microservices in Meta (nee Facebook). We had previously reviewed a microservi...

#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.

Generative AI exists because of the transformer
The technology has resulted in a host of cutting-edge AI applications β€” but its real power lies beyond text generation

#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.

The Architecture of Serverless Data Systems β€” Jack Vanlightly
I recently blogged about why I believe the future of cloud data services is large-scale and multi-tenant, citing, among others, S3.  β€œ Top tier SaaS services like S3 are able to deliver amazing simplicity, reliability, durability, scalability, and low price because their technologies are s

#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 Autoscaling: Achieving Scalability and Efficiency
How to Scale Pods Vertically and Horizontally in Kubernetes 🌐

#kubernetes #k8s