Architecture Weekly #108

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

If you're interested in the technologies, development approaches and overall business of our little startup in the compliance field subscribe on Patreon and Boosty, as I shared an article recently on how we added a second product to our architecture last week.

Highlights

Scheduling Internals 🤟

Ever wondered how Node.js can handle millions of requests while being a single thread? Yeah, you heard about libuv and event loops, but what happens at the CPU level? While reading this article I was recalling all my university program on Operating Systems, Schedulers(Yes, I hold a CS degree) and of course the concurrency I learned while studying java. Amazing read to understand how concurrency truly work.

Scheduling Internals

#os

Revisiting B+-tree vs LSM-tree 🤟

Hardware-based data compression capability becomes increasingly more widely available on modern storage devices and infrastructure. This amplify the importance of data structures for storage. Here you will find a hardcore article comparing B+-trees and LSM-trees for using in database given the new data compression capabilities.

Revisiting B+-tree vs. LSM-tree

#db

Solution Architecture Review Method  👷‍♂️

Couple of weeks ago a fellow from some time ago asked me to perform a solution architecture review for their company. I performed it to the best of my ability, but even I needed some help to put a proper structure to the review and the outcome document. It made me to wonder if there is a good method to perform such reviews and this what I stumbled upon. Stakeholder Identification, Trade-off analysis and many more in SARM process!

The SARM Process

#architecture #review

Follow-Up

Data Engineering Design Pattern Book 👷‍♂️

Simon Späti started to condense all his 20 years of experience in Data Engineering into a book. It just has a handful of chapters written, but the author is good, and upcoming chapters are promising. Some are already good, like the history of data orchestration. Consider subscribing for updates!

Data Engineering Design Patterns: Mastering Convergent Evolution
A data engineering book to understanding design patterns, exploring the concept of convergent evolution and its significance.

#data engineering

Software it not what you think it is - Part 4  🍼

Hard skills are important, but some philosophy is also crucial. Uwe Friedrichsen wrote a series of articles explaining why software is different from other goods, and this chapter highlights how the software should be always changing to preserve it's value depicting the adaptability requirement of software systems.

Software - It’s not what you think it is - Part 4
Why software must be changed continuously

#philosophy

PostgreSQL Master-Slave Database Replication 👷‍♂️

Today the database systems are run by SREs, and you can face a situation when you know that you need a replication scheme and just request to have it in prod. But hands-on experience always adds to the understanding how things work under the hood. Here you will find a guide how to manually setup the master-slave replication for PostgreSQL.

PostgreSQL Master-Slave Database Replication
Why do we need master-slave relations in PostgreSQL?

#db #reliability

Why DynamoDB is (Still) My First Pick for Serverless 🍼

I mentioned the ease of starting with DynamoDB several times, and then I found that article on why other people are still picking it up as a first choice as well. It's scalable, performant, provides fine-grained access control and simply reliable - well, if you know what ExclusiveStartKey is :) Some details inside this note.

Why DynamoDB Is (Still) My First Pick for Serverless
I recently participated in some discussions on where should a team put their data for new, serverless...

#db #serverless

Orchestrating dependent file uploads with AWS Step Functions 👷‍♂️

Imagine you need to launch some data processing only once every piece of data is ready and uploaded. How to organize this process let's say with S3 buckets and some lambda functions? You will need some orchestrator or a state machine tracking the upload state. Find the guide which will guide you through solving this problem with Step Functions.

Orchestrating dependent file uploads with AWS Step Functions | Amazon Web Services
This post is written by Nelson Assis, Enterprise Support Lead, Serverless and Jevon Liburd, Technical Account Manager, Serverless Amazon S3 is an object storage service that many customers use for file storage. With the use of Amazon S3 Event Notifications or Amazon EventBridge customers can create…

#aws #serverless #lambda

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, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman, Egor, Roman, Evgeniy, Nadia, Daria, Dzmitry, Mikhail, Nikita and Dmytro 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!