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

KubeCon Edge Day Recordings 👷‍♂️

KubeCon wrapped up this week. The recordings from the Edge day are already available! Edge Computing is all about bringing computation and data as close to the end-user as possible. As hardware and software spread across hundreds or thousands of locations, it requires a proper observable and scalable solution. Kubernetes is already becoming a key part of the edge ecosystem, driving integrations and operations. Learn more in the playlist from the conference!

Federated graph made searchable at Netflix 👷‍♂️

Netflix uses GraphQL to supply data to their frontends. This data includes content, content producers, and talents - actors, operators, directors, etc. The problem is that this graph should be searchable once you want to let's say find every movie where Hugh Jackman is involved. Netflix employed elasticsearch, but it required some design decisions. Find out how!

Network Semantics for Verifying Distributed Systems 🤟

Formal verification is a relatively old idea in software development. The article by James Wilcox explains how its methods can be used to prove the distributed systems adheres to its guarantees.

Network Semantics for Verifying Distributed Systems

Awesome distributed transactions 🤟

If you are interested in different aspects of distributed transactions, look at this Awesome list. There are about 40 papers and videos related to this theme. There are a few categories: weaker than snapshot isolation levels, Snapshot isolation, serializability, hardware, limitations, and testing. You will find papers about two-phase commits, Paxos, ordering, etc.

GitHub - redpanda-data/awesome-distributed-transactions: Awesome list of distributed transactions
Awesome list of distributed transactions. Contribute to redpanda-data/awesome-distributed-transactions development by creating an account on GitHub.

The moduliths 👷‍♂️

Monoliths were a popular architecture style back in the day being on one side of a spectrum. The microservices came with the language independency, separated deployments, and modularity on the other side. However, they brought all the problems of distributed systems. In the middle of granularity spectrum reside moduliths - monoliths with proper modularization. How do we distinguish them in the article by Uwe Friedrichsen.

The microservices fallacy - Part 9
Moduliths

DevSecOps for Mobile CI/CD pipelines 👷‍♂️

In the mobile-first world, security is extremely important for mobile applications which range nowadays from games to full-scale banking apps. There are numerous mobile-specific security concerns like application integrity, SSL Pinning, etc. They should be addressed at the latest build stage. Read, how to establish the controls in your CI/CD pipeline.

DevSecOps: injecting security into the mobile CI/CD pipeline | Bitrise
A guide to understanding the concept behind DevSecOps and how you can inject security into your mobile CI/CD pipeline to deliver more secure mobile applications.

How to do Non Functional Testing 👷‍♂️

We already included the article about NFR Testing. We decided to continue with a guide by Sanjay Kumar, in which he describes the strategy of testing the NFRs: shift quality left, focus on requirements, and test on a production-like setup. More details inside.

How to do NFR Testing (Non Functional Testing)

Presto® on Apache Kafka® At Uber Scale 👷‍♂️

Uber team describes how they integrate Kafka and Presto for ad-hoc exploration. They optimized operational queries like "is certain messages exist in the input/output Kafka streams?". Solution with Presto helped to reduce the query time from tens of minutes to seconds.

Presto® on Apache Kafka® At Uber Scale
Uber’s goal is to ignite opportunity by setting the world in motion, and big data is a very important part of that. Presto® and Apache Kafka® play critical roles in Uber’s big data stack. Presto is the de facto standard for query federation that has been used for interactive queries, near-real-time…

Towards Successful Resilient Software Design 🍼

Resilient Software Design became mandatory in today’s distributed system landscapes. Uwe describes seven challenges of resilient design. The biggest project issues are not on the coding level. He focuses on the following topics: understanding distributed systems and how to create a good functional design. Chaos Engineering is mentioned too.

Towards Successful Resilient Software Design
In this article, Uwe Friedrichsen explains the “why” and “what” of resilient software design, discusses the challenges he has met most often in recent years, and shares his thoughts on how to implement resilient software design in your organisation.

Diagramming Software Architecture with C4 and PlantUML 👷‍♂️

We love PlantUML - it is a good way of composing diagrams, storing them in git, and watching the evolving history of your system. This article describes, how you can use it in connection with C4 modeling approach and provides useful examples.  

Diagramming software architecture using C4 model and C4-PlantUML - LINE ENGINEERING
Hello, all. My name is Jeongil Kang, and I’m a technical writer at LINE. How are you all doing? I can’t help but ask about your well-being first amid

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