Architecture Weekly Issue #21. 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.
It's already 3 and a half 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.
Testing the software with ArchUnit 👷♂️
There are many tools that can detect software errors. However, at a higher level, you would also like to ensure that the application structure remains the same as it was designed. In order to do so, you can use some automated tools like ArchUnit. See how it compares to other approaches of architecture governance at the application level.
Uber's Unified Signup and Login Stack 👷♂️
When an organization has several business lines they tend to create similar functionalities, like sign up and login experience, which very inconvenient at a later stage: you have to make same experiments, improvements and monitoring. Read the story of Uber where they unified Signup and Login and what benefits it has brought.
Build vs Buy 🍼
The problem of building some piece of software instead of buying one was briefly touched in "Learning DDD" book. It was considered from the perspective of core vs generic vs supporting subdomain. This article and a video provide another view on the build vs buy problem sharing what you should consider in order to make a decision.
One-stop MLOps portal at LinkedIn 👷♂️
As ML widens it's application the number of ML Engineers grows as well. In order to support it and make them productive, you require some architecture change in the organization. LinkedIn describes what they did to efficiently do machine learning and what it gave them.
Domain Driven Design Patterns 👷♂️
The repo consists of many different patterns, that can be used together with Domain Driven Design at various levels, be it whole systems or just several classes or maybe a service and a database. Each entry has an ArchiMate file and an image for visual representation.
Fundamentals of Fault-Tolerant distributed computing in async env 🤟
The paper introduces formal definitions for fault tolerance, redundancy and fault models. It also discusses the safety and liveness of the system. A lot of mathematics inside.
What Enterprise Architecture is in reality 👷♂️
Gregor Hope from Google Cloud gives a talk on what the Enterprise Architecture really is and that's extremely important to understand the business in the first place before creating any sorts of roadmaps and technical visions.
Thin Platforms 🍼
Here is a discussion on Thick and Thin platforms. The main story is based on how Microsoft switched from Windows-centric (Thick) to Teams-centric (Thin) strategy. It is just interesting how world requirements were changed. And Microsoft tries to satisfy them.
Will circuit breakers solve my problems? 🍼
The circuit breaker is a popular pattern to protect services in distributed systems. But is it suitable for all tasks? This article describes circuit breakers' challenges in sharded and cell-based architecture. A solution exists, but there is a trade-off between tight coupling and high implementation costs.
Cache made consistent: Meta’s cache invalidation solution 👷♂️
Meta shares their approach to keeping consistency in one of the largest cache deployments in the world. The article describes scenarios of inconsistency and shows why versioning could not close all issues. Find out how custom monitoring and tracing help keep cache consistency at 99.99999999 percent.