Architecture Weekly #24

Architecture Weekly Issue #23. Articles, books, and playlists on architecture and related topics. Every record has the complexity indication: 🤟 means hardcore, 👷‍♂️ is technically applicable right away,  🍼 - introduction to the topic or an overview. Now in telegram as well.

WARNING 🇺🇦

It's already 130 days of crazy, inhuman, unjustified war of Russia 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.

Key Value Stores 🍼

Short article on types of key value stores. Includes classic KV storages, Documents DBs, column-based storages and the key to event sequence storages. Interesting considerations on keys nature inside!

Unobvious things you need to know about key-value stores - Event-Driven.io
Event-Driven by Oskar Dudycz

Shipping to Production 👷‍♂️

Good overview of techniques and approaches you would like to use in a pretty mature environment to ensure both the quality and velocity. Quality gateways, dynamic testing environments, staged releases and many more inside.

Shipping to Production
Approaches for shipping code to production reliably, every time.

Balancing Coupling in Software Design 🍼

Different components of our systems depend on each other. In other words they are coupled. It is common to say we must avoid coupling at all cost. Vladik Khononov, an author of Learning DDD, gave a talk on the coupling: do we really need extremely lousely coupled components or we should find the balance.

Observability, Monitoring and Chaos Engineering 👷‍♂️

Observability means understanding the systems internal state by observing it's signals; Chaos Engineering is a set of practice to experiment on your system to know how to improve it. But the problem is to have a clear view of your system in a first place. Visual metaphors can  help with that.

Chaos Engineering and Observability with Visual Metaphors
This article introduces a new actor for visualising chaos engineering and observability: metaphors. It provides the conceptual foundations of chaos engineering and observability, presents a state of art of visualisation techniques available in the market and shows how treemaps, gauge charts, geocen…

Single-Table Design with DynamoDB 👷‍♂️

DynamoDB is a high-performant OLTP database. The article suggests using it's speed to improve application performance by using a single table for different type of data. How it can work, why it is beneficial and when you definitely don't want to do that, find in the article below.

The What, Why, and When of Single-Table Design with DynamoDB
AWS recommends using just a single DynamoDB table for your entire application. In this post, learn why you would do that and the few times you shouldn’t.

CeresDB 🍼

CeresDB is a new time-series database. It claims to be high-performance, distributed, schema-less and of course cloud native. It also said to be a good fit for analytics payload. Check out the repository.

GitHub - CeresDB/ceresdb: CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads.
CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads. - GitHub - CeresDB/ceresdb: CeresDB is a high-pe...

Contract Testing 👷‍♂️

Classical Testing Pyramid teaches us that we have unit tests, integration tests and e2e tests. However it lacks the testing of API Contracts which do not kinda fall in any of that categories. Very good article on what is contract testing and what benefits it brings.

Should You Use Contract Testing?
Easy explanation on what is contract testing and why it may be usable

Scaling AppSec at Netflix 🍼

Netflix is a huge organization and managing security for it can be tricky. In order to scale it properly Netflix provides Paved Roads for everything including AppSec. What it is, how it was influenced by Netflix values, read in the article.

Scaling Appsec at Netflix
By Astha Singhal
=

Architecture is Context 🍼

A podcast episode of Tech Lead Journal Podcast with Eltjo Poort - an architect lead at CGI Netherlands. Good discussion on writing architecture document, tackling tech debt and sustaining a development pace.

#81 - Architecture Is Context—Making the Right Architecture Decisions - Eltjo Poort
Eltjo Poort is the architecture practice lead at CGI Netherlands. In this episode, Eltjo shared the importance of architecture context to make the right architecture decisions, architect’s main responsibilities, the goals of an architecture document, and how to deal with technical debt.

Good and detailed article to understand what is a distributed system, why it needs a consensus, what is a distributed consensus and how it can be achieved. Starts with fancy words on blockchain, but just scroll a bit down :)

Let’s take a crack at understanding distributed consensus
Distributed systems can be difficult to understand, mainly because the knowledge surrounding them is distributed. But don’t worry, I’m well aware of the irony. While teaching myself distributed computing, I fell flat on my face many times. Now, after many trials and tribulations...

Brought to you by Vladimir @vvsevolodovich Ivanov and Ilya @puzan Zonov