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

System Design Course

Looking to advance your system design skills further? I've got a Business Oriented System Design Course to help you! The Cohort #3 is running now, so you can sign up for the next one starting end of January. Follow this page: https://vvsevolodovich.dev/business-oriented-system-design-course/

Highlights

Databases in 2024: A Year in Review 🍼

The New Year has come and it's time for another reviews of what happened to Databases with Andy Pavlo. The post discusses the Licenses changes of Redis and Elasticseach, the rise of DuckDB, Databricks vs. Snowflake war and other random events. Enjoy the read by Andy Pavlo.

Databases in 2024: A Year in Review
Andy rises from the ashes of his dead startup and discusses what happened in 2024 in the database game.

#db

The Canva outage: another tale of saturation and resilience 👷‍♂️

If you deploy a new well-tested feature, it should not cause an incident, right? Well, not always. The combination of performance problems in API Gateway, implementation details of network connectivity in cloudflare and load balancing algorithms caused Canva significant downtime. Figure out how they managed to recover!

The Canva outage: another tale of saturation and resilience
Today’s public incident writeup comes courtesy of Brendan Humphries, the CTO of Canva. Like so many other incidents that came before, this is another tale of saturation, where the failure mod…

#casestudy #reliability #observability

Being Functionless 👷‍♂️

Serverless makes some developers think that they can just throw a lambda function at every new problem they face - this is call Lambda Hammer. This happens every time you don't spend enough time analyzing your data model and lack the effort for proper architecture layout. This article shows that some use cases can leverage native integrations between an API Gateway and underlying solutions like DynamoDB or SQS without the need of a Lambda in between. By @sheenbrisals

Being Functionless: How to Develop a Serverless Mindset to Write Less Code!
Innovative cloud architect focusing on serverless computing and Function as a Service. Advocates for optimized, functionless architecture to reduce complexity and costs. Expertise in leveraging cloud-native services for sustainable operations and minimizing code liabilities. Committed to transforming engineering mindsets for efficient application development in a rapidly evolving tech landscape.

#severless

Follow-Up

AWS serverless multi-region applications: active/active architecture 👷‍♂️

A nice hands on example on how to get multiregion application working with the help of route53 and healthchecks followed by the implementation.

AWS serverless multi-region applications: Active/active architecture with geolocation and health…
The public cloud offering offers a fantastic toolset for building global applications. One of these tools in AWS is the ability to route…

#aws #multiregion #availability

Use of Time in Distributed Systems 🤟

And again can't leave you without a paper! Murat provides a long intro into the problematics of time synchronization in distributed systems, and then proceeds with discussing the old paper which preceeds even the NTP. Have a read!

Use of Time in Distributed Databases (part 1)
Distributed systems are characterized by nodes executing concurrently with no shared state and no common clock. Coordination between nodes a…

#distributedsystems

Realtime Editing of Ordered Sequences 👷‍♂️

Figma is probably the most popular visual editor on the planet. As a tool with collaborative edit support, Figma should allow concurrent operations on the frames, components, images etc. Typical solution which is used in Google Docs is Operational Transformations(btw, find a mock system design interview for Google Docs here), but Figma decided to go with a different solution. Figure out which one in the article.

Realtime Editing of Ordered Sequences | Figma Blog
One of the problems we had to solve when we added multiplayer editing to Figma was supporting simultaneous editing of ordered sequences of objects.

#casestudy

Deep Dive into New Amazon S3 Tables 👷‍♂️

Following up on the previous newsletters, I am sharing an article explaining what are the new Amazon S3 tables, their relations to Apache Iceberg file formats and the structure of the latter.

Deep Dive into New Amazon S3 Tables
1. Introduction

#dataengineering

How to write complex software 🍼

And to wrap things up, grab a guide on the general method to write complex software. Nothing fancy, but a thought provoking discussion of bottom-top vs top-to-bottom approaches to software implementation including the stubs/mocks, a level of abstraction etc.

How to write complex software
A general method

#common

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!