Architecture Weekly #22

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

Tinder's Mobile CI/CD migration to Bazel ๐Ÿ‘ทโ€โ™‚๏ธ

Here is the success story of migration to Bazel from the Tinder team. There were many problem points before changing the Tinder iOS build system. They led to a build time of more than 40 minutes. With Bazel and a few custom tools, they achieved about 20 minutes for a build. Now it is a consistent system. Also, it is friendly for developers. But it was a difficult path for 18 months.

Bazel Hermetic Toolchain and Tooling Migration
Authors: Maxwell Elliott, Connor Wybranowski

Microservices are services with Micro-interfaces ๐Ÿผ

Vlad Khononov reasons about the definition of microservices and concludes that microservices should be the services with microinterfaces - as small public APIs available as possible. But then the microservice still has to grow to adhere to the complexity of a business case.

Untangling Microservices, or Balancing Complexity in Distributed Systems
The microservices honeymoon period is over. Uber is refactoring thousands of microservices into a more manageable solution [1]; Kelsey Hightower is predicting monoliths are the future [2]; and even Sam Newman is declaring that microservices should never be the default choice, but rather a last resโ€ฆ

Inconsistent thoughts on database consistency ๐Ÿ‘ทโ€โ™‚๏ธ

There are too many meanings of consistency in the database world. Alex DeBrie explains what it means in CAP, ACID, and Consistency models. He discusses issues related to the consistency. Why does PACELC exist? Will ACID always help you? Are there more granular tradeoffs to consider?

Inconsistent thoughts on database consistency
In this post, understand the different concepts of consistency as applied to distributed databases, as well as some issues with the conversation of consistency.

A client-centric specific of Database Isolation ๐ŸคŸ

If you are interested in database isolation theory, look at this paper review by Murat. It is dedicated to models which help describe and compare isolation guarantees. The main idea - use state-based formalization instead of a history-based model. It describes storage systems from an application point of view and does not base on implementation details. Also, the review by Adrian Colyer helps understand ideas clearly.

Seeing is Believing: A Client-Centric Specification of Database Isolation
This paper presents a new way to reason about transaction-isolation based on application-observable states, in lieu of prior history-based a...

API Versioning for LinkedIn Marketing API ๐Ÿ‘ทโ€โ™‚๏ธ

Versioning for public APIs is a mandatory property to keep clients safe. Linkedin describes goals and implementation of versioning for their Marketing public API. They migrated from unversioned API to versioned API based on version headers and introduced new layers: gateway and mid-tier. Find details in the article.

Under the hood: How we built API versioning for LinkedIn Marketing APIs
Co-authors: Nihit Purwar, Demian Lessa, and Shruthi Jeganathan

Event Driven Architecture in the Real World ๐Ÿผ

A short but nice article which demonstrates the practical examples of applying event-driven style of architecture. Diagrams, pros and cons and business needs inside.

Real-World Event Driven Architecture! 4 Practical Examples
Whatโ€™s event driven architecture good for? Here are 4 practical real-world event driven architecture use-cases.

Insights instead of Data ๐Ÿผ

Mauro Serventi uses an analogue to the usage of a Fitness App with a band in order to monitor health. And the thing highlighted is that we don't need simple measurement history like heartbit, but we need recommendations: what to change in order to improve something in our system.

We need insights, not data
Gauges and graphs attract software engineers like honey for bees. We spend hours implementing distributed logging solutions or monitoring systems, and still ...

Stop calling databases CP or AP ๐ŸคŸ

This article is like a preview to a chapter of Designing Data Intensive Applications. CAP theorem's definition of availability is too strong than it is actually required in a real life, so many systems can not be fully CP or AP. More details in the article.

Please stop calling databases CP or AP โ€” Martin Kleppmannโ€™s blog

ADR Process - AWS Prescriptive Guidance ๐Ÿผ

ADR is one of the popular approaches to tracking architecture decisions. AWS shares guidance for the ADR process. It focuses on a few ADR goals: alignment of current and future teams, strategic directions, and avoidance of decision anti-patterns. It also pays attention to the definition of ownership. Find other best practices inside.

Using architectural decision records to streamline technical decision-making for a software development project - AWS Prescriptive Guidance
How to use ADRs to capture information about technical and process-related decisions for software development.

Identifying missing stakeholders ๐Ÿผ

Stakeholder Management is hard though necessary for an architect job. The common problem is to fail to identify important stakeholders before the project or just doing it too late. The article by Joan Davis explains how using Enterprise Analysis and a set of techniques you can find missing stakeholders by building proper domain boundaries and understanding the relationships in the organization.

Identifying Hidden Project Stakeholders by Connecting the Relationships
Be sure to include the right stakeholders in your project using these techniques to discover the hidden connections and relationships in your organization.

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