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.

Intro

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.  

My 2023 summary
Work, health and dissapointment in the whole world in 2023

#personal

Highlights

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.  

Tech predictions for 2024 and beyond
The coming years will be filled with innovation in areas designed to democratize access to technology and help us keep up with the increasing pace of every-day life -- and it starts with Generative AI.

#forecast

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.

Architecture Antipatterns

#architecture

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 Meta built the infrastructure for Threads
On July 5, 2023, Meta launched Threads, the newest product in our family of apps, to an unprecedented success that saw it garner over 100 million sign ups in its first five days. A small, nimble te…

#casestudy

Follow-Up

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.

How to Efficiently Scale the Pods?
Microservices are great for handling the load because they allow for efficient scaling of pods. By breaking down an application into more…

#performance #kubernetes

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.

Understanding Request Latency with Profiling
It can be hard to figure out why response times are high in Java applications. In my experience, people either apply a process of elimination to a set of recent commits, or might sometimes use profiles of the system to explain changes in metrics. Making guesses about recent commits can be frustratin…

#performance

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.

How To Structure Your .NET Solutions: Architecture And Trade-Offs
How should you design the structure of your .NET solutions? Microservices? Monolith? Feature folders? Clean architecture? Shared databases?

#architecture

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.  

Build a BLAZINGLY FAST key-value store with Rust
Have you ever been curious about how databases work under the hood? I certainly was and decided to roll up my sleeves and implement one from scratch. In this blog series, I’ll be sharing my experience implementing Bitcask in Rust and discussing some of the techniques I used to make it goes ***blazin…

#db

WARNING 🇺🇦

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!