Architecture Weekly #120

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

Migrating from DynamoDB to LedgerStore 👷‍♂️

What do you do if you need to migrate several petabytes of data from one store to another with the lossless guarantee? Uber faced this problem when migrating financial data from DynamoDB to their LedgerStore. Crazy nines all over the place :)

#casestudy

Practical guide to Chaos Engineering in Serverless Architecture 👷‍♂️

Great example of applied chaos engineering for AWS Lambda. In this case Koby Aharon uses the Load Gen tool to send events to Lambda, while purposely failing a lambda in one of the regions to ensure the application is still alive. Methodology, tools and code inside!

Unleashing Resilience: A Practical Guide to Chaos Engineering in Serverless Architectures
We’ll explore chaos engineering in AWS serverless architecture, using AWS FIS for fault injection and providing example code.

#casestudy #resilience

Database in Kubernetes: is that a good idea? 🍼

The key properties of OLTP databases are availability and performance, which heavily rely on disk hardware. Kubernetes at the same time is optimized on the disposable instances, which is hard contradiction. So if you want to put a database in K8s, you need to put significant effort to even try to match the classical setup. So the question is... is it even worth it? Long read exploring the possible answer.

Database in Kubernetes: Is that a good idea?
WeChat Column

#k8s

Business Oriented System Design Course

If you wanna rock system design interviews, be able to design performant, reliable and secure software architecture, and advance in software engineering career, I have a course to help with this!

Opening up the second cohort of  Business Oriented System Design Course. What's included, what the participants of the first cohort think about it and other details - on this page.

Follow-Up

Building, Signing and Verifying Docker Images 👷‍♂️

Supply Chain Attacks are the most prominent attacks in todays landscape of using containers everywhere. So verifying and signing containers become crucial. In this post the whole pipeline of such a solution is described and coded.

Automation of building, signing and verifying docker images. Kaniko + Cosign + Kyverno
How to create a pipeline that automates the process of building and signing Docker images, integrating important security practices

#security

Mastering Caching in Distributed Applications 👷‍♂️

Cache is one of the major tactics for granting required performance. Here's a very nice post explaining the types of caches in software systems, caching approaches and caching evicting strategies.

Mastering Caching in Distributed Applications
If I had a dollar for every time that I came across a bug with an implementation of caching in a software system… I would probably have…

#performance

S3 is Showing its Age 🍼

Have you ever wanted to write a file only if it does not exist in S3? Or if wasn't modified for quite a while? This is called a precondition: a feature exists in Google Cloud Storage and Azure Blob Storage, but not in S3. Through the lack of those features S3 is showing it's age - and this is what Chris Riccomini's post is about

S3 Is Showing Its Age
I’m squarely in the trough of disillusionment with S3.

#s3 #cloud #whine

Enforcing Software Architecture with Architecture Tests

Separating logic of a webapp into controllers, services, use cases, repositories is usually a good idea. The question though is - how do you make sure new features are developed in the same manner? ArchUnit for the rescue. See how it can be done.

Enforcing Software Architecture With Architecture Tests
Software architecture is a blueprint for how you should structure your system. You can follow this blueprint strictly, or you can give…

#applicationarchitecture

Designing a Ticket Booking Site like TicketMaster 👷‍♂️

This post shares a good approach to a general system design interview: first satisfy the functional requirements one by one; then focus on each of the non-functional requirements. See the example how to use this way while designing a ticket booking system.

Hello Interview | System Design in a Hurry
Everything you need to quickly get prepared for FAANG system design interviews. Written by former Meta and Amazon interviewers, this guide breaks down the core concepts, patterns, frameworks, and technologies needed to ace your system design interviews. It also breaks down some of the most commonly…

#casestudy #interview

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, 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. 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!