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