Architecture Weekly #90
Architecture Weekly Issue #90. 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
Fallacies of Distributed Systems 🤟
When somebody tries to design something distributed, they frequently make some bold assumptions about it, like that "network is reliable" or "topology does not change" . But those assumptions are false, and there is a set of them. Find out the illustrated list of distributed systems fallacies in the awesome post by architecture notes.
#distributedsystems
Nine Ways to Lost Data Using Serverless Without Even Knowing It 👷♂️
I am a personal fan of serverless solutions, because they are very frugal. However, you need to be careful at the same time, as SQS, DeadLetter Queues, DynamoDB filtering can contribute to your data being lost or at least be visible as lost. 9 edge cases which you definitely want to know about!
#serverless
Death by a thousand microservices 🍼
This week I gave a talk about Frugal Software Architecture - the recording will be soon available - but the main idea was that the less components you have from the start, the easier it will be in the future. In this article the author actually proves my viewpoint, showing that the majority of startups which began with microservices setup was soon dead, but the ones who started simply and employed vertical scaling are thriving. Well, who could have thought.
#microservices #frugality
Follow-Up
Using Apache Kafka to scale OpenTelemetry 👷♂️
If you're using OpenTelemetry collectors, then you may face issues when using it for high loaded servers. One of the options would be to have a chain of collectors, and another - using Kafka for that. Find out, why it is a viable option.
#observability #kafka
Guide to OpenTelemetry 👷♂️
Speaking about observability: if you are not aware what OpenTelemetry is and how widely it is used in today's observability solutions, please find a guide by Logz.io, where they explain the product overview, it's current state, basic and advanced concepts and recommendations.
#observability
Optimizing the databases at Quora 👷♂️
This is the continuation of the series where Quora is covering how their database setup with MySQL looks like. This one includes peculiar cases of optimization of database load. For example, they managed to change the cache key for user languages which resulted in 90% drop in db queries. For more examples and details, refer to the article.
#db #casestudy
Investing 10% to pay back tech debt 🍼
Everybody agrees that tech debt is bad for ya. But selling the idea of spending time on tech debt to management rarely is an easy task for developers. Alex Ewerlöf shares the story how he joined the team with huge amount of debt and how the tradition of tech debt Friday improved the code base, boosted team morale and helped to build a better product.
#casestudy #techdebt
Switching Build Systems Seamlessly 🍼
or how Spotify increased Developer Experience when switched to Bazel. Spotify iOS app had already some build tooling, but the waiting time for builds were 80 minutes for P75. In Spotify they decided to migrate to Bazel build system to improve the DX, but they had to do that seamlessly and not interrupt the feature delivery. The story how they managed to do that - in Spotify's engineering blog.
#ios #mobile #build
Patterns for Developers and Architects building for the cloud 👷♂️
And the last for today: amazing collection of patterns and approaches to work with a cloud. Cloud adoption, scalable storage, microservices and many more recipies in this glossary. Enjoy!
#cloud