Architecture Weekly Issue #99. 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.
This is an issue #99 - almost 100! - and the last issue of the year, a little shorter, as you're supposed to rest a bit. Some people are making the year summaries, and I did as well, find it below. I would like to thanks every subscriber for following the newsletter. The growing number of followers makes me continuing it for almost 2 years already as a form of responsibility, like it reminds myself that people actually expect to receive it.
I also want to wish you everyone a peaceful New Year celebration. We've got a tough time and many people are not seeing how they can improve the situation. My answer is to grow professionally, increase your strength and resiliency so you can help others and this is my wish to you all.
Tech predictions for 2024 and beyond 🍼
Let's start the last newsletter edition of the year with 2024 predictions from Werner Vogels, AWS CTO. Of course, a big part is how AI will redefine the developer productivity and how AI will know more about cultural differences. Another one is how increasing speed of tech innovations imposes challenges on the education. And I bet we still yet to see a revolution in education indeed.
Architecture Antipatterns 🍼
Architecture patterns are all over the place. They help us solve known problems in an efficient way. However we can invent the opposite of those - patterns which seem efficient, but actually doing more harm than good. Find here the list of architecture antipatterns including domain allergy, misapplied genericity and my favourite - infrastructure ignorance.
How Meta built the infrastructure for Threads 👷♂️
Threads is a competitor for Twitter(sorry, X!) by Facebook. Recently, Laine Campbell posted a short note on the ideas behind supporting the 100 million user base. Interestingly enough, the core idea is the combination of distributed key-value database and Function-as-a-Service platform called Async. See more inside.
How to Efficiently Scale the Pods? 👷♂️
We already covered the explanation of VPA and HPA in Kubernetes. Although this one is more practical, showcasing the issues you can face with the autoscalers and the possible solutions around this. Graphs, Diagrams and Helm Charts in the article.
Understanding Request Latency with Profiling 🤟
Java Flight Recorder, Async-Profiler, CPU Bound - all in one posts showcasing how profiling a java application can lead to understanding of the application leaking RAM first and number of CPUs, and reducing the latency 4 times fold. A bit hardcore, but fascinating story.
Architecture: How To Structure Your Solutions 👷♂️
Don't mind the .NET mentioned in the article: it gives very little specifics. What's much more important is the talk about the tradeoffs that you need to make considering different options like designing your data storage, or structuring the code around layers or features and making other choices.
Build a Blazingly Fast key-value store with Rust 🤟
Bitcask is an application to store key-value records in a log-structured hash table. In this post you will find out how it can be implemented with Rust, how atomicity is guaranteed and what makes it so performant.
The brutal and unjustified war against Ukraine continues. If you want to help Ukraine 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!