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

Highlights

Will my cloud bill go up with looser coupling? πŸ‘·β€β™‚οΈ

Coupling is considered a bad thing, so architects usually try to decrease it for better flexibility and maintainability. But what about the cost of infrastructure? Gregor Hohpe picks up an example of a Lambda function writing data to DynamoDB and sending an event to EventBridge to see if moving the event handling to DynamoDB streams will increase the cost. But the main point of the article is in its end: whatever the infrastructure increase would be, you will probably save a couple of orders of magnitude in value brought by your programmers.

I made everything loosely coupled. Will my cloud bill go up?
Loose coupling is an essential property of fine-grained, event-driven systems. However, cloud resources that decouple event producers and consumers incur a run-time cost. How to weigh the trade-offs?

#architecture #cloud #cost

Big Data is Dead 🍼

Big Data was on the hype for over a decade. The reason for that was the expectation of the neverending growth of data and the growth of the companies handling this data. But it turns out that really large volumes are only handled by a handful of companies, and even for them the workloads are much less than the total amount of data. What does that mean for you? Find out in the article below.

MotherDuck: Big Data is Dead
Big data is dead. Long live easy data.

#bigdata

Distributed Reset 🀟

Last time we shared a visualization of Raft consensus protocol. But it is a relatively recent development. But the problems of distributed systems are much older. For example, we had a problem of distributed reset: setting a default value for all the nodes in the system. The original paper was written in 1994, but this week Jesse Jiryu Davis wrote a review for it. The basic idea is close to the Deijksta path search algorithm with the difference that here we need to traverse all the nodes in DAG. Grab the details inside. Β 

Review: Distributed Reset
A 1994 paper describing how to bring a distributed system to a known state.

#distributedsystem

Follow-Up

Evolution of a React application πŸ‘·β€β™‚οΈ

React is usually perceived as a framework, but it's rather a library for building UI. And the application architecture is still up to you. Juntao QIU from ThoughtWorks wrote an article in Martin Fowler's blog on how you can evolve your frontend application which uses React from a single component to a sophisticated multilayer application. Grab a great read below.

Modularizing React Applications with Established UI Patterns
Learn how to apply established UI patterns for a more organized and maintainable codebase and discover the benefits of layering architecture in React development

#frontend #react #architecture

How the Istio Service Mesh became the Critical Infrastructure for CN apps πŸ‘·β€β™‚οΈ

We spoke about service meshes in previous articles; this time I would like to share an article which covers the history of evolution from plain Kubernetes systems to using Services Meshes and the place of Istio there. The article also covers the evolution of proxies from locally configurable to cloud-native solutions at scale.

How the Istio Service Mesh Became Critical Infrastructure for Cloud Native Applications
This is the first in a series of three articles that reviews the development of the Istio open-source project (this article), shows how to optimize Istio performance, and describes Istio’s open-source ecosystem and future. I also share my view on the most appropriate use of eBPF with Istio, mostly i…

#servicemesh #istio #cloudnative

DevOps Roadmap 🍼

It's impossible to imagine a high performing organization without DevOps practices nowadays. So you might end up in situation where you need to hire SREs and other relevant specialist or grow them inside the company. The roadmap I found on the internet does a good job depicting the areas of expertise required nowadays from git and programming languages to Clouds, CI/CD and Monitoring and Observability. Β  Β  Β 

GitHub - milanm/DevOps-Roadmap: DevOps Roadmap for 2022. with learning resources
DevOps Roadmap for 2022. with learning resources. Contribute to milanm/DevOps-Roadmap development by creating an account on GitHub.

#devops

Guide to Projections and Read Models in Event-Driven Architecture

With event sourcing, you typically have a fixation of facts or event happened in the system. However, we frequently need to understand the current state. Projections can help to build up this state from the recorded events. Oskar Dudycz shares the explanations of what exactly projections are in his event-driven architecture blog. Β 

Guide to Projections and Read Models in Event-Driven Architecture - Event-Driven.io
Event-Driven by Oskar Dudycz

#eventdriven

Postgres WAL Files and Sequence Numbers 🀟

WAL files are used for the recovery and replication purposes. But if you need to dig deep into some issue, you might find useful the understanding of the WAL files naming conventions, log sequence numbers and segment positions. This is why I am sharing an article by Crunchy Data with you.

Postgres WAL Files and Sequence Numbers
Go inside the WAL file with this in-depth look at WAL file Log Sequence Number (LSN), WAL segment positions, WAL file names, and pg_wal_switch.

#postgresql #db #wal

Reference Architecture and Implementation for Deployment Pipelines πŸ‘·β€β™‚οΈ

If you ever needed to build a deployment pipeline, you know how many details are there. Last week AWS published the reference architecture for the deployment pipeline and InfoQ blog has a nice article covering them. Find out how you can build a pipeline using AWS tools and services and how to follow the best practices.

AWS Publishes Reference Architecture and Implementations for Deployment Pipelines
AWS recently released a reference architecture and a set of reference implementations for deployment pipelines. The recommended architectural patterns are based on best practices and lessons collected at Amazon and customer projects.

Like the newsletter? Wanna receive new content earlier, than everybody else? Consider helping to run it at Patreon or Boosty. The funds go to pay for the hosting and some software like a Camo Studio license. Patrons and Boosty subscribers of a certain level also get access to a private Architecture Community and of course every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August and Roman for already supporting the newsletter. Join them as well!