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


Next week I am talking with Slava Savitskiy, a Staff Engineer from Spotify, about that it takes to be a Staff Engineer, what are the responsibilities of this role and how to grow into such position. Press the notify button to get a reminder!


An intuitive documentation strategy 👷‍♂️

What is the most overlooked aspect of software development? Writing good documentation indeed. But worry no more: Rohit Hedge posted his recommendation on building intuitive documentation. I really like that not only includes such things as onboarding procedures or working on the first story in the project, but also the list of ADRs, the certifications required to do the job per persona and last, but not least a great structure for docs. Must read!

An intuitive documentation strategy
I wrote this blog post to share some of my learnings on creating intuitive documentation for products and projects over the past decade or so. This post is for those of you looking to make your documentation interesting enough for the audience to keep coming back for more.


Hashnode Architecture Overview 👷‍♂️

Hashnode is kinda a competitor for Medium. In this post they explain how their whole solution is designed starting from DDoS Protection and domain resolution, down to the data stores. Detailed and illustrated post on hashnode itself :)  

Hashnode Architecture Overview
Examine Hashnode’s architecture: domain protection, caching, Next.JS server, API/datastore optimization, and asynchronous processing for performance

#architecture #casestudy #serverless

Improving efficiency of Goku Time Series Database at Pinterest 👷‍♂️

Time-series databases are the core of modern observability solutions, and Goku is no exception at Pinterest. They built a pretty sophisticated architecture for the observability, but still faced Longer Recovery Time and the fact of Single Point Of Failure Due To Health Inference at Cluster Level. Find out what changes did the Pinterest team do to handle those risks.

Improving Efficiency Of Goku Time Series Database at Pinterest (Part — 1)
Monil Mukesh Sanghavi, Kapil Bajaj, Ming-May Hu, Xiao Li and Zhenxiao Luo



Selecting Compute offering in cloud 👷‍♂️

Cloud providers offer the variety of compute services like Virtual Machines, Container Management Services, App Engines, Managed Kubernetes Clusters, Functions as a Service and others. How do you choose one? AWS Well-Architected Framework lists the methodology of picking the right option starting with gathering your requirements(huh, who could have known) to understanding the cloud capabilities.  

PERF 2. How do you select and use compute resources in your workload? - AWS Well-Architected Framework
The optimal compute choice for a particular workload can vary based on application design, usage patterns, and configuration settings. Architectures may use different compute choices for various components and allow different features to improve performance. Selecting the wrong compute choice for an…


Flutter Application Security Considerations 👷‍♂️

Flutter is one of the two big cross-platform solutions for Mobile Development. React-Native security was already analyzed by Cossack Labs earlier, and it's time for Flutter. Vulnerabilites, toolset, byte code analysis - all that you would expect in a decent guide.

Flutter application security considerations | Cossack Labs
Ensuring security in cross-platform development with Flutter: Pros and cons, platform-specific security risks, fundamental security recommendations for using Flutter effectively and avoiding pitfalls.

#security #mobile

Model Checking Guided Testing for Distributed Systems 🤟

The paper "Model Checking Guided Testing for Distributed Systems" introduces a testing technique called Mocket, which bridges the gap between formal specifications and their implementations in distributed systems. Mocket uses state space generated by formal model checking to guide system testing, identifying bugs in distributed systems. The technique was applied to three popular distributed systems, revealing both known and previously unknown bugs. Key contributions include the novel approach of Mocket, its implementation, and its effectiveness in unearthing bugs in real-world systems.

Inside Capital One's Point-of-Sale Rewards API 🍼

Capital One built API behind an interesting feature: being able to see and redeem your bonus points right at the Point-of-Sale. They leverage AWS Lambda, Reduce maintenance requirements, increase high availability and scale performance as needed. More details in Capital One's blog!

Inside Capital One’s Point-of-Sale Rewards API
Learn how we built a serverless, point-of-sale API that allows customers to pay with rewards in-store.

#serverless #api

Voyager: Spotify’s New Nearest-Neighbour Search Library 🍼

Music recommendations can be solved either by machine learning or by algorithmic search by closest neighbour. Sounds like essential technical capability for a music streaming service. In this article you will find the requirements to a nearest-neighbour solution and the story how it evolved over the years.


Optimizing Kubernetes scalability and cost-efficiency with Karpenter 👷‍♂️

Miro migrated to Elastic Kubernetes Cluster several years ago and were experimenting with Auto-Scaling Groups, but discovered issues with spot instances, scaling from and to 0 and working with Persistent Volumes. So they decided to give Karpenter a try - an open-source scaling solution for Kubernetes. Find out the resuls in Miro Engineering blog!

Optimizing Kubernetes scalability and cost-efficiency with Karpenter
In this post, you’ll learn the rationale and approach taken by Miro’s Compute team to enhance Kubernetes cluster scaling and efficiency.

#Kubernetes #cloud