Architecture Weekly Issue #19. 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 three 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.
Machine Learning Architecture 👷♂️
We typically include the distributed systems whitepapers, research, and case studies. But there are a lot of technology domains in production systems, and machine learning is one of them. This article by Markus Schmitt covers the basic components for systems implementing machine learning and their relationships.
Conway's Law Doesn't Apply to Rigid Designs 🍼
Conway's law state that the system design repeats the organizational structure. The inverse version of the law dictates that you can reorganize the company to change the design. However, it only works if the system is flexible enough. Thoughts on the situation by Mathias Verraes are confirmed by Dr. Conway himself in the article.
Feral Concurrency Control 👷♂️
Murat's new article on feral concurrency control explains that popular web frameworks like Rails develop their own concurrency primitive to ensure integrity. Murat refers to the research, that shows that under a relatively small load those controls might be convenient for developers and provide okeish safety, but still allow for severe integrity violations and heavier load. A fascinating read inside.
Why we need resilient software design 🍼
Uwe Friedrichsen continues to describe Resilient Software Design and starts article series on this topic. The first post is related to distributed systems and their history. He shows how requirements and opportunities were changed: number of peers, 24x7 system availability, and fast update propagation.
The risks of letting your app run on a rooted device 🍼
This month we wrote an article by ourselves in cooperation with Licel on the risk assessment of running the mobile application on a device with root access or a jailbreak. Shortly, there are different types of apps. For some of them, it's perfectly fine; for some, it's better to deny the launch at all. More details in the blog.
YDB overview 🍼
YDB is a new database that claims to be a horizontally scalable, distributed fault-tolerant database. It can provide strict consistency, but it can be lowered for higher performance. This week it got open sourced. More details are right on the site of YDB!
Distributed consensus reading list 🤟
Awesome list of papers on how distributed consensus looks like for different use cases(i.e. geo-distributed), consistency models, clocks, and all that we like since reading Designing Data-Intensive Applications.
Building a scalable webhook delivery system using kafka, sqs and s3 👷♂️
Good enough system design case on designing the webhook platform. Lays out the requirements, domain model, components, and data flows. Unfortunately, lacks alternatives and tradeoffs, as well as storage computations.
OpenFeature - a standard for feature flagging 🍼
OpenFeature is an effort to define a standard API for feature flagging. It looks like OpenTelemetry. They want to decrease the number of vendor-platform integrations and migrate to the vendor-OpenFeature-platform approach. If you are interested in this topic, join their community and build a great open standard together.
Design-First Approach to API Development: How to Implement and Why It Works 🍼
Steve Rodda from Stoplight describes the Design-First approach for API development. First of all, he compares it with Code First and API First. The main difference: the design process ensures all stakeholders are involved, and their needs are satisfied in the creation. The API-as-a-Product concept is a big part of Design-First too. It seems DDD has had a big impact on this approach. Suggestions for implementation are inside.