Architecture Weekly Issue #145. 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
Delivering 4k Video with Cloudflare R2 for $2.18 👷♂️
Imagine you need to serve 4k video for clients with various bandwidth. One way to do it is to spend a fortune on Vimeo or Mux. Or you can store the videos at Cloudflare's R2 storage and leverage HLS for adaptive bitrate. Find out, how it played out for screencasting.com
#casestudy
How to Handle Sudden Bursts of Traffic? 👷♂️
The traffic grows for your service, and you happily apply horizontal scaling for compute with load balancing on top. But then you get really popular and traffic spikes one day. Out of 3 nodes two go out under the load, the 3rd one handles the rest and goes down too. What are other ideas to apply? Jitter, retries, queues load shedding and other tactics in this article.
#patterns
SLI vs KPI 🍼
Both are indicators, but despite being different, they can still have the overlapping. It's important, as SLI is a pretty technical term, while KPI is more business-oriented. So understanding the differences and similarities of both are crucial. Follow the post of Alex Ewerlöf.
FAANG-like System Design Interview: Designing Uber 👷♂️
Time for another mock system design interview! This time we are designing an Uber-clone: a ride-hailing app. Enjoy the video!
#video #mockinterview #systemdesign
Follow-Up
Building Bluesky: a Distributed Social Network 🍼
We already shared a post about AT protocol - the foundation of Bluesky. Now it's time to go through the case how Bluesky was built from the ground up. Invite system, preparing for launch, architecture evolution and many more in The Pragmatic engineer newsletter.
#casestudy
Health Checks with Docker and ECS explained 👷♂️
Health check is a way to tell if the application operates well or there are any issues. But how do you do that with Docker? Well, you can bake in a check right into a container. Too bad ECS does not leverage that, so you need to double it in the terraform task definition too. This, as well as the explanation what health check should actually check in this nice post.
#sre #observability
How do databases execute expressions? 🤟
Abstract Syntax Tree conversion into a linear set of instructions is a way how most of the programming languages work. SQL is a programming language as well, but the interpreter sits in the database itself. Phil Eaton conducted a survey last year to see how the different dbs execute expressions and came up with some interesting statistics and made speculations about the future of expression execution for databases.
#db
The long way towards resilience - Part 6 🍼
While designing a software system you will face known unknowns, which you cover with assumptions, and unknown unknowns which there is no technical solution to. Uwe Friedrichsen argues that you need to take a step above and design socio-technical systems. Btw, I recorded an interview about building those, it will be published next week on my YouTube channel, so make sure to subscribe and press the bell button too!
#resilience
Refresh vs Long-lived Access Tokens 👷♂️
The struggle to minimize the blast radius and probability of a breach led us from passwords usage to the tokens and eventually to access token/refresh tokens pair. In this article you will find the pros/cons analysis for using long-lived access tokens vs refresh token implementation.
#security
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!