Architecture Weekly Issue #144. 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
AWS Lambda turns 10: a doc that started it 🍼
You know folks, how much do I love Lambda. Behind every great product, which Lambda definitely is, there is always a great foundation. AWS engineering culture express it in the PR/FAQ documents - an internal doc to show the strong value proposition. Today you can read the one for Lambda. Notice the structure, the narrative and customer orientation.
#serverless #documentation
Netflix's Distributed Counter Abstraction 👷♂️
This week Mike Tyson was fighting Jack Paul in the ring and Netflix was streaming it only to crash mid broadcast. Apparently, the scale is so challenging that even 2+2 operations can give you 3,4, NaN and undefined. That makes reliably understanding the view counters challenging. Learn how Netflix solves this problem:
#distributedsystems #casestudy
Most databases do not do checksums by default
You probably heard of SQLite do not checksums by default as was figured out by previously post in the same blog post. But actually there is a short list of databases that do that(like Oracle and MongoDB), and the rest don't do that assuming this is a responsibility of underlying hardware. TIL!
#db
Follow-Up
Beyond the Basics of Debezium 👷♂️
Good article explaining how Debezium uses PostgreSQL publications to stream the changes through Kafka Connector, and a guide how to setup it for your database.
#cdc
AWS Cloud Account Security Best Practices 👷♂️
A pretty good guide to AWS security practices for a complete newbie with AWS. IAM Roles, Organizations, Policies, MFA, credentials best practices - well structured and helpful.
#security #cloud
Why you should never default to Microservices 👷♂️
And here we go again. The author argues that testability is hurt a lot in a microservice approach, which is true, but can fought using testcontainers. But other arguments still valid: the complexity increase is too expensive. So don't start with microservices. Refactor to them later though if it's required.
#microservices
12 Factor App Definiton
12 Factors is a set of best practices formulated by Heroku: where to store the source code, how to make deployments, how to approach processes etc. This week Heroku opensources the full guide to 12 Factords: find the link to git repo in the post!
#saas
The Myth of Loose Coupling
Event-driven architectures claims that they lower the coupling between the components. But do they actually? Dominik Tornow in his newsletter considers a simple case of an e-commerce app with both API-oriented and event-driven architecture and make a conclusion about the real effect of events on the coupling.
#eda
Catching Tiny Performance Regressions at Hyperscale 🤟
Can't leave you without a paper. Let's say you commit a change that makes an application 0.05% slower. No big deal, right? Well, at the scale of Meta, it is a big deal--a small slowdown for a large application can waste thousands of servers. It's such a big deal that Meta needs a way to catch these performance regressions and reliably figure out if an application is even a hundredth of a percent slower. You will the methodology how to do that in this paper by Meta.
#paper #performance
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!
By the way, they get the access to the content earlier, for example for a mock system design interview where we create Uber clone, so consider joining.