Architecture Weekly Issue #155. 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 and Substack as well.
Before we start: I am interviewing Vlad Khononov in just 2 days about his new book on Balancing Coupling in Software Design. If you answer the question under this post you can win a free eBook! Hurry up!
Highlights
Distributed Systems vs Organizational Design
Nice note on the similarity of organizational and distributed systems design. You have nodes(teams), processes(individuals), communication protocols and so on. Thus the fallacies of distributed systems can be applied to organizations too.
#distributedsystems #management
Formal and Semi-Formal verification at AWS
S3, DynamoDB and multiple other products are large distributed systems which is impossible to bring up to the quality without formal verification methods. MARC BROOKER and ANKUSH DESAI wrote a whole paper on the formal and semi-formal methods like PObserve, deterministic simulation, fault injections and others to show the variety of methods used
#distributedsystems
Stop Using CPU Limits on Kubernetes
I was reading an article about handling the spikes on Kubernetes, but an article referenced got my attention better. In k8s you can set both requests(how much will be guaranteed) and limits(the top allocation). So Natan Yellin argues, that you shall not use limits at all, because it leads to deathly CPU throttling in the scenarios where CPU is needed the most.

#kubernetes #k8s #performance
Follow-Up
Architecture Communication Canvas
One of my teams is struggling with agreeing on some architecture decisions. In such cases it's extremely useful to have all the landscape layed out: stakeholders, requirements, made decisions so far. Architecure Communication Canvas is a great tool to use. Take a look.

#architecture #documentation
Evolving our infrastructure through the messaging system model
Dropbox got into a typical situation: different part of the product solved similar problems in different ways, and now meetings SLOs and maintainging those solutions becomes hard. Redesigning the appoach helps, as you can understand the landscape and provide a proper platform. This is what Dropbox did.

#casestudy
Go Supply Chain Attack
Supply Chain attacks are pretty sophisticated and hard to notice. Recently a smart combination of impersonification, git tag rewrite and leveraging of go modules caching mechanism allowed to install backdoors to multiple servers written in Go. Grab the article for details

#security
Designing Distributed Indexes for Optimal Query Performance
Applying sharding or creating indexes are powerful techniques, but combining them is a the key to performance. Yugabyte’s blog post explains how to make indexes faster in distributed databases. It focuses on choosing the right columns for partitioning and clustering to speed up data retrieval. The post also suggests adding extra columns to indexes to avoid having to fetch more data from the main table, which helps reduce delays. Following these tips can lead to much faster database queries.

#db #performance
Software Developers Statistics 2024
State of Developer Ecosystem by JetBrains is out! JS is the most popular language whatsoever, but the intersting part is about AI. 69% of developers have tried some assistant and many find it useful for the variety of tasks. Check it out yourself.

Big thanks to Nikita, Constantin, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman, Egor, Roman, Evgeniy, Nadia, Daria, Dzmitry, Mikhail, Nikita, Dmytro, Denis and Mikhail for supporting the newsletter on Patreon! If you like the newsletter, feel free to support it there - with one-time support for example!