Architecture Weekly #70

Architecture Weekly Issue #70. 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 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 and Nadia 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

Evolutionary Architecture from an Organizational Perspective 🍼

Evolutionary Architecture frequently only considered from the technical point of view, forgetting about the the fact that without the organization support evolving architecture is barely feasible task. The article on InfoQ blog discusses the necessity of IT and Business working as one team, alignment on company-wide goals and the importance of contracts within the organization for achieving truly evolutionary architecture.

Evolutionary Architecture from an Organizational Perspective
Creating an architecture that can evolve over time is not simply a technical challenge, and requires collaboration with non-technical people in an organization to ensure the software adapts as needed.

#architecture

An educational side project 👷‍♂️

Have you tried building a product like Uber or Bolt on your own? Juraj Majerik decided to try! Across the span of 7 months he configured the infrastructure, built the backend, frontend and the load emulator and created the demo for the system, learning a lot meanwhile. Gergely Orosz describes his work and the main takeaways from such experience alongside with the system architecture.

An educational side project
What does a great side project look like, which helps learn new technologies, but also helps stand out when looking for a new job? Analysis of an Uber simulation app, built from scratch.

#casestudy

Frugal Software Architecture 🍼

This week I wrote an article myself. I want to introduce you to the concept of Frugal Software Architecture. But it's not a mere cost efficiency metric of the software, but rather a set of principles allowing to balance strategic investments and cost optimizations. Find them inside.  

Frugal Software Architecture: Balancing Strategic Investments and Cost Optimization. Part 1: Intro
Imagine the scenario of countless startups that secure substantial investments only to squander them on expensive hires and extravagant resources without much thought. These companies, lured by the promise of rapid growth and success, fail to assess the long-term consequences of their spending choic…

#architecture #frugality

Follow-Up

Investigating the impact of HTTP3 on network latency for search 🤟

A peculiar case study on improving the search results latency. Some can say half a second for a search result is good enough, but not Dropbox. They wanted to decrease that value significantly and started exploring the UDP-based HTTP3 protocol. Find what they achieved inside!

Investigating the impact of HTTP3 on network latency for search

#network #casestudy

Effective Test Automation Approaches for Modern CI/CD pipelines 👷‍♂️

Unit tests are widely accepted, but do we do them right? Do we have the good test design? Do we cover all the necessary cases? Maybe if we involve quality assurance engineers into the designing the unit tests we will have better tests with more coverage? Craig Risi considers this question in his article on effective test automation at InfoQ.

Effective Test Automation Approaches for Modern CI/CD Pipelines
Shifting left can be used to improve test design and lead to faster, more effective CI/CD pipelines. By focusing on building effective and efficient tests, CI/CD runs can quickly return feedback.

#cicd #deployment #quality #tests

"Software design is just theory"  🍼

The question architects frequently hear is "how are you legit if you don't observe the results of your design?" and fair enough. Mathias Verraes claims that 5 years is approximately the time when the project starts suffering all the decisions made. And at this point just the practical experience is far from enough. Read what's important in the old blog post of Mathias.

“Software design is just theory”
Is writing code all day all you need to do to become a better programmer?

#architecture #philosophy #legacy

Don't outsource thinking 🍼

Domain-Driven Design teaches us about general subdomains which frequently make sense to buy a solution for, basically outsourcing it. Gregor Hohpe shares his thoughts on the "buy" strategy: of course, you can outsource a solution, but you would never want to outsource your strategy or in simpler words: thinking.  

Don’t Outsource Thinking
Enterprise IT generally follows a “buy over build” strategy because in most cases it yields lower risk and better economics than doing it yourself. But there are a few things that you should keep to yourself.

#philosophy

Embracing Simplicity in Software Architecture Diagramming 👷‍♂️

In this article the author reasons that whatever you're documenting, be it business, solution or deployment architecture, you need to have a top-down approach starting with the highest level of abstract(old system -> new system), slowly increasing the level of details. Find some fancy diagrams inside.  

An architect’s journal -Embracing Simplicity in Software Architecture Diagramming
Diagramming is a fundamental communication mechanism among software architects and other system design and development stakeholders. It’s a…

#documentation

5 Ways I Bypassed Your Web Application Firewall 👷‍♂️

Not me though. Ally Petitt wrote a neat article on how you can detect the particular type of the Web Application Firewall used at a site and then try to bypass the firewall using different methods of modifying the payload. The article is not surely intended to bypass WAFs, rather show you how it is possible for you to prepare for those attacks.

5 Ways I Bypassed Your Web Application Firewall (WAF)
Introduction

#security