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.
#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.
#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.
#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!
#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.
#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.
#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.
#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.
#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.
#security