Architecture Weekly Issue #114. 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.

Highlights

Evolution of SoundCloud Architecture: Final part ๐Ÿ‘ทโ€โ™‚๏ธ

Software Architecture in a successful business must undergo changes as the world changes around and business needs and priority do too. In this post you will find a final part of the evolution of SoundCloud overview covering the introduction of Backend-For-Frontend pattern and Value-Added Services. ย 

Evolution of SoundCloud: Final Part
Become a better full stack developer. A newsletter dedicated to web development and software architecture.

#casestudy #architecture

Best Tools to Visualize your Terraform ๐Ÿผ

When we speak about documenting software architecture, we usually think about manually created diagrams, either drawn in WYSIWYG, or done as code. But with IaC we already have the code for the infrastructure, then why not get a documentation out of it! Grab the list of tools to do that.

Best Tools to Visualize your Terraform
This blog post will show you all the tools that might simplify Terraform resources and data source...

#documentation #iac

Building a Music Recommendation System with Milvus ๐ŸคŸ

Ever wondered how Apple Music, Spotify or YouTube Music create recommendations for you? Igor Gorbenko showcases the system for creating and refining the music recommendation using a vector database called Milvus.

Harmony in Data: The Music Recommendation System with Milvus
The Art of Personalized Music Recommendations

#ML

Follow-Up

How do distributed databases handle secondary indexes ๐ŸคŸ

Primary indexes are used for sharding; however when you need to search for something without knowing the primary key, secondary indexes help. There are at least 4 strategies of working with secondary indexes in distributed databases, and guess what: this article will get you through them depicting pros and cons and mentioning the databases which use a particular strategy.

How do distributed databases handle secondary indexes? A survey | DeBrie Advisory
Learn how different distributed databases handle secondary indexes, and the benefits and drawbacks of each approach.

#db #distributedsystems

Optimizing Postgres Column Order ๐ŸคŸ

Performance tactics include a lot of design decisions, like caching, using CDN and indeed organizing data. A more obscure and unobvious optimization aligned with the data design comes from the data alignment on the disk level. Find out how you can save up to 20% of disk storage by simply... reordering the columns!

On Rocks and Sand | Optimizing Postgres Column Order
Columns represent our data, and their order of definition directly impacts storage. What if there were a way to optimize this for real, tangible benefit?

#db #performance #cost

Consuming a Kafka Topic is Easy, Isn't It? ๐Ÿ‘ทโ€โ™‚๏ธ

Kafka is an essential part of many real-world systems. So it should be quite obvious how to reliably consume a kafka topic. However, the topic is not so easy. Managing offsets, proper error handling and other issues require elaboration. That's why grab the article!

Consuming a Kafka Topic Is Easy, Isnโ€™t It?
Introduction

#kafka

Should Terraform be applied before or after merge ๐Ÿผ

With Infrastrcture-as-Code there is a question when the changes should be applied - after getting merged to the main branch or before that. This article consider pros and cons of both strategies and provides recommendation of a mixed approach depending on criticality of the target environment.

Should Terraform be applied before or after merge? A consideration of Tradeoffโ€™s
A significant consideration for teams using Terraform or OpenTofu is whether to apply before or after merging code changes into the mainโ€ฆ

#iaac

How browsers work ๐Ÿ‘ทโ€โ™‚๏ธ

Once I was interviewing at Amazon, and they asked what happens when you type in the URL in the browser. Indeed, I was able to tell about the DNS queries, caches, TLS handshake, html loading and DOM tree building. Find an extensive page explaining all of those steps and some more!

Populating the page: how browsers work - Web performance | MDN
Users want web experiences with content that is fast to load and smooth to interact with. Therefore, a developer should strive to achieve these two goals.

#performance

WARNING ๐Ÿ‡บ๐Ÿ‡ฆ

The brutal and unjustified war against Ukraine continues already 2 years. 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, Dzmitry, Mikhail, Nikita, Dmytro, Denis and Mikhail 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!