Architecture Weekly Issue #42. 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 as well.

WARNING 🇺🇦

It's already been 256 days since Russia's crazy, brutal, and unjustified war against Ukraine. We condemn this war and want it to stop ASAP. We continue this newsletter so you can advance your skill and help the millions of Ukrainian people in any way possible. If you want to help directly, visit this fund.

Video

AWS Security tools 👷‍♂️

Remember the Datadog state of AWS security report? I am sharing a list of tools to fight some of the highlighted threats. Eliminating old keys, auditing the  resources and IAM policies and many more!

GitHub - toniblyx/my-arsenal-of-aws-security-tools: List of open source tools for AWS security: defensive, offensive, auditing, DFIR, etc.
List of open source tools for AWS security: defensive, offensive, auditing, DFIR, etc. - GitHub - toniblyx/my-arsenal-of-aws-security-tools: List of open source tools for AWS security: defensive, o...

#security #cloud #aws

Consistency levels in Azure Cosmos DB 🤟

Strong consistency is a conflicting requirement for performance and availability. Typically a database or a cloud service provides a single level of consistency. That's not the case though for Azure Cosmos DB. See an article with a list of consistency levels supported by it illustrated with nice gifs!

Consistency levels in Azure Cosmos DB
Azure Cosmos DB has five consistency levels to help balance eventual consistency, availability, and latency trade-offs.

#cloud #azure #database

Building a distributed Audit Log with YugabyteDB 👷‍♂️

In several domains, like in commerce, it is important to know who made a change, and in what context. The structure which reflects it is called an audit log. Building a solution for significant data volume can be challenging as you need to account for sharding, performance and durability. Vlad Mihalcea showcases the design of distributed audit logs using YugabyteDB, but you do the same with PostgreSQL as well.

Building a Distributed Audit Log with YugabyteDB
Introduction In this article, we are going to see what is the best way you can build an Audit Log using YugabyteDB. And what’s even more interesting is that this solution is almost the same on PostgreSQL. The only difference is how we are building the audit log table PRIMARY KEY, but everything else…

#database #systemdesign

Road-movie architectures 🍼

Uwe delivered another deck on the fact that our architecture initiatives rarely end up being completed; rather replaced with another initiative midway. Uwe recommends thinking more about building architecture which allows fast changes including building components with removal in mind. Check out the full deck.

#architecture

Awesome software architecture list 🍼

A new curated list of resources for software architecture. Design and cloud patterns, algorithms, principles and many more!

GitHub - mehdihadeli/awesome-software-architecture: A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles. - GitHub - mehdihadeli/awesome-software-architecture: A curate...

#architecture #patterns

Notion's data model 👷‍♂️

Notion is an online collaboration platform with offline capabilities. It is interesting how the platform looks at their data. Jake Teton-Landis posted a long read on how Notion designs their product around a Block - and how they handle offline work, permissions, concurrency and other aspects.

The data model behind Notion’s flexibility
Notion’s data model enables the product’s most foundational component: blocks. Through blocks, we allow users more flexibility over their information.

#casestudy #systemdesign

Architecture Readings. Database Internals, Chapter 1 👷‍♂️

I started doing coverings for the book I am reading - Database Internals. It will be a separate playlist on the Youtube channel. In this video, I will cover Database architecture, file types used by databases and the questions we need to ask to pick up a DB. Subscribe, if still not!  

#video #database

Distributed Tracing with Envoy, Kuma and Graphana Agent 👷‍♂️

Tracing shows you how the request goes through the API Gateway and all of your backend services. Koyeb shares their story of building distributed tracing which does not come easily: we need to introduce traceIds, support external spans, have sampling in place and more.

Distributed tracing with Envoy, Kuma, Grafana Agent, and Jaeger
Discover how we added end-to-end tracing to all requests for Koyeb Apps. We explain how we implemented end-to-end tracing, why we chose Jaeger and Grafana Agent to power our observability stack, and how we overcame the challenges we encountered along the way.

#tracing

Content Moderation Complexity 🍼

You might have heard about Elon Musk purchased Twitter and announced freedom of speech. The problem is that social networks are incredibly complex domain. Dive in to find out literally 20 levels of domain complexity!

Hey Elon: Let Me Help You Speed Run The Content Moderation Learning Curve
It’s kind of a rite of passage for any new social media network. They show up, insist that they’re the “platform for free speech” without quite understanding what that actua…

#domain #socialnetwork

Why I would have a single API Gateway Endpoint per Microservice 👷‍♂️

Should you use a single API Gateway for all of your microservices? Or should you have several ones split by domain? Or maybe you need to go with a single Gateway for every endpoint? Let's follow Kieran Wrenn's article for the pros and cons of each approach.

Why I would have a single API Gateway Endpoint per Microservice
Overcoming the architectural decision of whether to use a centralised API gateway endpoint or an API Gateway endpoint per microservice

#aws #cloud #microservice #pattern

Like the newsletter? Consider helping to run it at Patreon or Boosty. Patrons and Boosty subscribers of a certain level also get access to a private Architecture Community. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel and Robert for already supporting the newsletter.