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

Maximizing Efficiency: A Dive into Frugal Software Architecture πŸ‘·β€β™‚οΈ

Finally I gave a talk on the Introduction to Frugal Software Architecture at DevClub. Real-life examples of strategic investments, cost optimizations mixed up with some jokes. I hope we will finally avoid bloated architecture and make some fewer layoffs. Β 

#frugality #video

How to Test Serverless Applications on AWS πŸ‘·β€β™‚οΈ

Serverless app on AWS typically includes a set of lambdas possibly with step functions, s3 buckets, SQS queues... How do you test all of this? You can definitely write up some unit tests, but how about more complex testing? In this article you will find how e2e tests can look like and what to bear in mind while designing them.

How to Test Serverless Applications on AWS | Instil
Testing Serverless applications can be difficult, in this post we share some real world advice on where to start!

#qa #serverless #aws

On actionable and actually useful logs πŸ‘·β€β™‚οΈ

Imagine you pushed something to prod and everything seems find only to lead a doubled cloud check at the end of the month. You discover that wrong log level made huge amount of data to be written to logs consuming the storage. Logs are important things and you will find great checklist for writing good, actionable logs spiced up with real stories. Enjoy :)

On actionable and actually useful logs | Lanre Adelowo
Responding to responses about my earlier thoughts on overlogging

#bestpractices #observability

Follow-Up

Denial of Pleasure: Attacking Unusual BLE Targets with Flipper Zero πŸ‘·β€β™‚οΈ

Not exactly the software architecture topic, more on the security and mobile, which I am passionate about. As I already told you long time ago, "S" in "IoT" stands for Security(video in ru). Today's article on attacking sex toys with Flipper Zero just proves the point. Find out technical details on making the toys go bzz without an app inside :)

Denial of Pleasure: Attacking Unusual BLE Targets with a Flipper Zero
Become familiar with developing applications for Flipper Zero, which will be capable of activating adult toys all at once or completely inhibit their use for those within your range (i.e. Denial of Pleasure Attack).

#security

Distributed Transactions at Scale in Amazon DynamoDB 🀟

NoSQL databases are used for scalability and high availability while sacrificing the atomicity. DynamoDB added the support of transcations which work through Transaction Coordinators, Replications with Leaders scheme and 2-phase commits. Great long read!

Distributed Transactions at Scale in Amazon DynamoDB
Amazon DynamoDB supports transactions without sacrificing performance or availability. Akshat Vig explains how DynamoDB introduced TransactGetItems and TransactWriteItems for atomic operations, proving full ACID support in distributed transactions.

#db #aws #distributedsystems

Stop using AWS Lambda for everything! 🍼

First shot when talking cloud is usually Lambda. But there are two other options you can consider at the same time: Elastic Container Service and Elastic Kubernetes Service. I am not a big fan of doing Kubernetes from day 1, but still: know your options. Find a short article comparing Lambda with ECS and EKS as your runtime platform.

Stop using AWS Lambda for everything! πŸ›‘
AWS Serverless Showdown: Lambda vs ECS vs EKS - Which One Fits Your Startup Like a Glove?...

#aws

20 Advanced Tips for AWS Lambda 🍼

While we are still discussing Lambda, find a list of 20 tips for this serverless solution from using VPCs and leveraging environment variables to usage of Layers and set of tools to employ. Don't expect details though :)

20 Advanced Tips for AWS Lambda
Note: This content was originally published at the Simple AWS newsletter. Understand the Why behind...

#cloud

Rethinking Reliability: What you Can(and Can't) Learn from Incidents 🍼

As Michail Druzhinin said in my interview with him, "The 3rd level of consciousness is understanding that incident is going on right now". We all do Post-Mortems(do you?), but we don't do systematic work as a whole industry. Aviation learned this lesson the hard way until they sit together and shared their incident data. IT can do the same with an open database for the incidents. Jump inside the interview about VOID - Verica Open Incident Database.

Rethinking Reliability: What You Can (and Can’t) Learn from Incidents
Courtney Nash discusses research collected from the VOID, challenging standard industry practices for incident response and analysis, like tracking MMTR and using RCA methodology.

#reliability

How We Export Billion-Scale Graphs on Transactional Graph Databases πŸ‘·β€β™‚οΈ

Discover eBay's cutting-edge approach to handling vast graph databases in their latest tech blog. The article reveals how eBay efficiently exports graphs with billions of vertices and edges using Apache Spark and their custom NuGraph analytics plugin. It highlights the challenges of scaling graph datasets, including data validation and relationship analysis, and details the innovative use of disaster recovery mechanisms for comprehensive data scanning. This piece is a must-read for those interested in big data, graph databases, and the engineering feats behind managing massive, complex datasets

How We Export Billion-Scale Graphs on Transactional Graph Databases
By leveraging Apache Spark, eBay Graph Database can export a graph with billions of vertices and edges.

#dataengineering #casestudy

Mastering Integration Testing for Microservices 🍼

It's time to bring the interviews on the channel back! In the next episode of Architecture Talks I am speaking with Oleg Ε elajev, a Developer Advocate at AtomicJar. We will cover challenges of testing microservices, discuss best practices and toolset to perform integration testing. Press the bell to get notified!

#video #qa #microservices