Architecture Weekly #19

Architecture Weekly Issue #19. 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 three months 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.

Machine Learning Architecture 👷‍♂️

We typically include the distributed systems whitepapers, research, and case studies. But there are a lot of technology domains in production systems, and machine learning is one of them. This article by Markus Schmitt covers the basic components for systems implementing machine learning and their relationships.

Machine learning architecture: The 11 core components | Data Revenue
An overview of the 8 components of any machine learning solution. Orchestration, feature engineering, training, prediction ...

Conway's Law Doesn't Apply to Rigid Designs 🍼

Conway's law state that the system design repeats the organizational structure. The inverse version of the law dictates that you can reorganize the company to change the design. However, it only works if the system is flexible enough. Thoughts on the situation by Mathias Verraes are confirmed by Dr. Conway himself in the article.

Conway’s Law Doesn’t Apply to Rigid Designs
The impact of the Inverse Conway Manoeuvre is constrained by the flexibility of the system. A reorganisation can’t fix a broken design.

Feral Concurrency Control 👷‍♂️

Murat's new article on feral concurrency control explains that popular web frameworks like Rails develop their own concurrency primitive to ensure integrity. Murat refers to the research, that shows that under a relatively small load those controls might be convenient for developers and provide okeish safety, but still allow for severe integrity violations and heavier load. A fascinating read inside.

Feral Concurrency Control: An Empirical Investigation of Modern Application Integrity
The rise of data-intensive “Web 2.0” Internet services has led to popular new Object-Relational Mapping (ORM) programming frameworks. Rathe...

Why we need resilient software design 🍼

Uwe Friedrichsen continues to describe Resilient Software Design and starts article series on this topic. The first post is related to distributed systems and their history. He shows how requirements and opportunities were changed: number of peers, 24x7 system availability, and fast update propagation.

Why we need resilient software design - Part 1
The rise of distributed systems

The risks of letting your app run on a rooted device 🍼

This month we wrote an article by ourselves in cooperation with Licel on the risk assessment of running the mobile application on a device with root access or a jailbreak. Shortly, there are different types of apps. For some of them, it's perfectly fine; for some, it's better to deny the launch at all. More details in the blog.

The risks of letting your app run on a rooted device
Significant amount of users root their devices for different reasons. Should you allow your app to run on the device? Let’s investigate together

YDB overview 🍼

YDB is a new database that claims to be a horizontally scalable, distributed fault-tolerant database. It can provide strict consistency, but it can be lowered for higher performance. This week it got open sourced. More details are right on the site of YDB!

YDB overview
YDB is a horizontally scalable distributed fault tolerant DBMS. YDB is designed for high performance with a typical server being capable of handling tens of thousands of queries per second. The system is designed to handle hundreds of petabytes of data. YDB can operate both in single datacenter and…

Distributed consensus reading list 🤟

Awesome list of papers on how distributed consensus looks like for different use cases(i.e. geo-distributed), consistency models, clocks, and all that we like since reading Designing Data-Intensive Applications.

GitHub - heidihoward/distributed-consensus-reading-list: A list of papers about distributed consensus.
A list of papers about distributed consensus. Contribute to heidihoward/distributed-consensus-reading-list development by creating an account on GitHub.

Building a scalable webhook delivery system using kafka, sqs and s3 👷‍♂️

Good enough system design case on designing the webhook platform. Lays out the requirements, domain model, components, and data flows. Unfortunately, lacks alternatives and tradeoffs, as well as storage computations.

OpenFeature - a standard for feature flagging 🍼

OpenFeature is an effort to define a standard API for feature flagging. It looks like OpenTelemetry. They want to decrease the number of vendor-platform integrations and migrate to the vendor-OpenFeature-platform approach. If you are interested in this topic, join their community and build a great open standard together.

OpenFeature - a standard for feature flagging
OpenFeature is a new open standard for feature-flagging. Why we need an open standard for what’s essentially a glorified if statement? Let me explain...

Design-First Approach to API Development: How to Implement and Why It Works 🍼

Steve Rodda from Stoplight describes the Design-First approach for API development. First of all, he compares it with Code First and API First. The main difference: the design process ensures all stakeholders are involved, and their needs are satisfied in the creation. The API-as-a-Product concept is a big part of Design-First too. It seems DDD has had a big impact on this approach. Suggestions for implementation are inside.

Design-First Approach to API Development: How to Implement and Why It Works
With the rapid growth of the API industry, developers and technology leaders alike need to know how to create a successful and scalable API program that will drive business value. Developers should consider prioritizing a design-first approach to building APIs which will ensure a positive experience…

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