Architecture Weekly #21

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.

WARNING 🇺🇦

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.

USL – Uber’s Unified Signup and Login Stack
Introduction Uber has operations in over 10,000 cities worldwide and its services include ridesharing, food delivery, package delivery, couriers, freight transportation, electric bicycle and motorized scooter rental, and ferry transport. Every year we have millions of users going through signup and…

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.  

Build vs Buy: The “to be or not to be” of Tech
This post gets into the “7 C’s” that should be considered when deciding to build vs buy. Learn about how Apartment List implemented this process.

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.

One-stop MLOps portal at LinkedIn
Co-authors: Eing Ong, Shannon Bain, and Daniel Qiu

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.

patterns/domain driven design patterns at master · wilmerkrisp/patterns
Complete catalog of all classical patterns in the Archimate language - patterns/domain driven design patterns at master · wilmerkrisp/patterns

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.

Thin Platforms
The Microsoft and Stripe developer keynotes were both examples of the rise of Thin Platforms

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.

Will circuit breakers solve my problems? - Marc’s Blog

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.

Cache made consistent: Meta’s cache invalidation solution
When it comes to cache invalidation, we believe we now have an effective solution to bridge the gap between theory and practice.

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