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


It's already been 242 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 Version

Pegasus DB 🍼

New week - new database! This time Apache presents a new DB based on RocksDB engine called Pegasus. They claim this key-value store to be horizontally scalable and strongly consistent with the usage of PacificA consensus protocol. Considerably this is a gap fill between Redis and HBase.

GitHub - apache/incubator-pegasus: Apache Pegasus - A horizontally scalable, strongly consistent and high-performance key-value store
Apache Pegasus - A horizontally scalable, strongly consistent and high-performance key-value store - GitHub - apache/incubator-pegasus: Apache Pegasus - A horizontally scalable, strongly consistent...


How the SQLite Virtual Machine Works 🍼

What if a database was a sandwich-making machine and SQL was a language for making sandwiches? Interesting analogy, huh? blog has an article which uses it to demonstrate how the SQLite interprets your SQL query and what it has under the hood to execute it. Nice introduction to execution plans.

How the SQLite Virtual Machine Works
Let’s look at how SQLite parses, optimizes, and compiles every query that it receives.

#database #sqlite

Understanding Upgrade Failures in Distributed Systems 🤟

Upgrading software in a distributed system was a root cause in several high-profile cloud outages recently. The studying of those allowed to understand them better and come up with a testing tool called DUPChecker. This toold was even asked to be integrated into the toolset of HBase. Find more details inside!

Understanding Upgrade Failures in Distributed Systems
Talk on “Understanding and Detecting Software Upgrade Failures in Distributed Systems” paper for distributed systems reading group.

#distributedsystems #testing

Prioritizing App Stability 👷‍♂️

Early years of my career was mobile mostly, so I am interested in the mobile news as well. Lyft posted an article on how they deal with their Android application stability. It involves analyzing the crashes and the effort required to tackle them. Good example of data-driven approach to one of the important 'ilities'.

Prioritizing App Stability
Mobile Performance @ Lyft

#mobile #stability #errorhandling

How to design a good API and why it matters 🍼

I know Joshua Bloch by his book "Effective Java". Many years ago in 2006, he wrote a short article on API Design, stating that every developer is an API designer to some extent and that you have only a single chance for the public API. In this article, you will find a couple of dozens of heuristics on how to design a good API.

How to design a good API and why it matters | Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications


Zero Downtime Migration from HBase to Bigtable 👷‍♂️

Box - a cloud file storage and management system - used to store more than 80TB of user data in on-premise HBase. Last year they decided to migrate it all to fully managed HBase compatible BigTable. The requirement was to make to with zero-downtime, which could be challenging. Read about the PoC they did to choose the storage type, and how they ensured the zero downtime in the post by Axatha Jalimarada.  

Zero Downtime Migration from HBase to Bigtable
Box has traditionally utilized compute-services hosted in its own data centers while relying on cloud services mostly for geographically…

#migrations #cloud #bigtable

State of Observability 2022 by Splunk 🍼

Observability is a hot topic: every company wants to understand what happens to their IT system in real-time and be notified if something requires attention. To understand what are the trends in observability and why you might want to look in the direction of applying AI for your alerting, make yourself familiar with the report by Splunk.


Outbox pattern for a guaranteed delivery 👷‍♂️

Exactly-once delivery is a holy graal of messaging. However, even the at-least-once delivery can tricky in the implementation. One of the patterns that can guarantee that is an outbox pattern: you write the message to the database first, and then try to send it. If the sending fails, you retry sending it again. Read more details in the article by Oskar Dudycz.

Outbox, Inbox patterns and delivery guarantees explained -
Event-Driven by Oskar Dudycz

#patterns #outbox

Cloud Cost as an Engineering Problem 🍼

AWS Bills are scary to many IT-companies. But the way they approach it is typically hiring some person with Finance background and treat as a cost optimization problem. But it turns out unused resources are a minor factor of cost; what drives it high is the architecture and software solution. Read why it happens in a nice article by Mike Julian.

Why Cloud Finance Is Broken and Ineffective
Cloud finance is more “cloud” than “finance.” This fundamental misunderstanding leads to very ineffective cloud finance efforts. Here’s how to fix them.

#cost #cloud

10 Best Practices for a Secure Cluster in EKS

Last issue I mentioned the video on Kubernetes Security. Continuing the topic, I am sharing the checklist of 10 rules you want to apply in EKS deployment. Applying RBAC model, using Container Storage Interface for Secretes Manager and many more inside!

EKS Security Checklist: 10 Best Practices for a Secure Cluster
Discover 10 EKS security tactics to protect your Kubernetes clusters and tighten your application security.

#security #k8s #kubernetes

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.