Architecture Weekly #88

Architecture Weekly Issue #88. 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 a year and a half 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.

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

Highlights

An Interactive Intro to CRDTs 🤟

You probably heard about the ways to implement the collaborative editors resilient to network failures. Conflict-Free Replicated Data Types allow you to do that. But how  does it work under the hood? It appears it does not require much: implementation of a single interface and some school-level algebra properties. You will find this and also the interactive demos inside an awesome article by Jake Lazaroff.  

An Interactive Intro to CRDTs | jakelazaroff.com
CRDTs don’t have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.

#distributedsystems #crdt

99,999%(5 Nines) of Prime Video Availability 👷‍♂️

We used to expected the TV to show something all time, at least when we were still watching it. Not it's time of streaming services, but we expect the same level of quality. Prime Video by Amazon was built with 5 nines of availability in design. Find out how to make the appropriate calculations out of your components SLA and how to built a resilient streaming service!  

How Prime Video ingests, processes, and distributes live TV to millions of customers around the world, while reducing costs
At Prime Video, cost optimization doesn’t mean compromising on quality or reliability for customers.

#casestudy #aws #streaming #highavailability

Node.js reference architecture by RedHat 👷‍♂️

Node.js is wide-spread for microservice architectures. Folks from RedHat wrote a series of articles called "Node.js reference architecture" where they explain how to build solutions using this technology from code style, API design, load balancing and many more!

Why we developed the Node.js reference architecture | Red Hat Developer
Learn about the Node.js reference architecture with this new series. Part 1 explains why we believe we need a Node.js reference architecture.

#bestpractice #referencearchitecture

Follow-Up

The Architecture of a Modern Startup 🍼

If you find yourself building a new product from scratch, you wonder how the overall picture should look like. Although I have some preferences, I also like to see other suggestions. Find an article which explains how the marketplace of cleaning services in Florida approaches their architecture with docker containers, PostgreSQL, secret management etc.

The Architecture of a Modern Startup
Hype wave, pragmatic evidence vs the need to move fast

#casestudy

Evolution and Systems Architecture 🍼

A short note in the system5.dev blog about the product view point of our systems. We frequently look at the product either from a project perspective with a given scope, or as a feature factory, where we constantly add new capabilities. However we can look at the feature as a product incremenet... more on this in a visually compelling way - in the article!

Evolution and Systems Architecture
The “Evolutionary Architecture” phrase has already been coined by Neal Ford, Rebecca Parsons, and Patrick Kua in their excellent book…

How we tame High Cardinality by Sharding a stream 👷‍♂️

High Performance can be impressive, but fragile. So you always need to add some resilience there, otherwise the effort will go in vain. The post in Last9 blog discovers how tactics like Sharding, Replication and Load Balancing allows Prometheus and VictoriaMetrics stay efficient and resilient.

How we tame High Cardinality by Sharding a stream | Last9
Using ‘Sharding’ to tame High Cardinality data for Levitate - Our Time Series Data Warehouse

#timeseries #observability

MLOps: Synergy of Data Science, Engineering and Operations 👷‍♂️

MLOps is a way of bringing Machine Learning closer to the overall engineering ensuring the efficiency of the overall execution. In this piece you will find what role Data Science, Machine Learning, Data Engineering and Operations play in a real-life project and get a blue-print of ML-based anomaly detection solution.

MLOps: Synergy of Data Science, Engineering, and Operations
“People love to be cared for” — a guiding phrase said to me by an engineering manager many years ago when I was still a student and was…

#ml

Robust Architecture for Event Handling 👷‍♂️

AWS services is very event oriented: S3 can issue events on object updates, DynamoDB has streams, Lambda Functions can be invoked by events... How do you combine it together efficiently? Find a good post explaining how to build a robust architecture with event handling.

Robust Architecture for Event Handling
This is where AWS infrastructure was used to build a decoupled, robust and highly scalable methodology to implement an…

#aws

Load Balancer vs Reverse Proxy vs API Gateway 👷‍♂️

Although those terms can be mentioned together, it is important to understand the difference between the components purposes. Find out why you would need evere one of them in a short article.

Load Balancer vs. Reverse Proxy vs. API Gateway
Understanding the Key Components for Efficient, Secure, and Scalable Web Applications.

#network #apigateway