Architecture Weekly Issue #54. 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 347 days 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.

Video

Highlights

MySQL vs PostgreSQL 👷‍♂️

When you ask yourself what relational database you want to pick for a new project, you would probably name MS SQL, Oracle, MySQL, PostgreSQL,  and maybe some more.  How would you compare the choices? You definitely want to see the data types support, indexing, performance, replication, support for transactions and isolation levels and more.  Today I am sharing a good comparison between MySQL and PostgreSQL which includes all of the above. The article also shows that migration is currently in favour of PostgreSQL. Check out the link to understand why.

MySQL vs PostgreSQL in 2023.
PostgreSQL and MySQL are both reliable, secure and scalable databases that have been around for years. They each have unique strengths and weaknesses, making one more suitable for specific needs. This article will compare them to aid in making an informed decision in 2023.

#mysql #postgresql #database #comparison

Gentle introduction to DDD 🍼

I touched on the Domain-Driven Design topic several times in both the newsletter and the blog itself. If you're new to a topic, want to refresh your knowledge or are just not sold whether you need to read a book, find a lengthy article on the introduction to DDD, which basically covers the content of "Learning the DDD" by Vlad Khononov briefly. But what's good about it - it has a healthy dose of funny memes which improves the reading experience significantly.

A gentle introduction to Domain Driven Design
Starting into DDD is hard, even though it’s heavily praised by their practitioners. This article introduces the topic, gently.

#ddd

Asynchronous computing at Meta 👷‍♂️

Meta has tons of data, and they prefer to handle their workloads asynchronously, so they built their own ordering queueing system called FOQS(wonder, what it says) and employed a component called Dispatcher that would manage the ingestion into it. Although it was working fine, the team noted that the Dispatcher incorporated too much of responsibility for consumption, rate limiting, routing the workload and many more. So they decided to improve the async layer architecture and they shared how they did it and why. I understand the problems they face like retries with streams, delays, etc but like really? Why do you reinvent the already existing streaming solutions? Maybe you will find the answers in the article.

Asynchronous computing at Meta: Overview and learnings
Here’s what we’ve learned from making architecture changes to Meta’s event driven asynchronous computing platform.

#architecture #casestudy #queue

Follow-Up

Unlocking the power of service mesh 👷‍♂️

The service mesh is an idea of adding the features, common to all the microservices not through libraries, but by runtime components running alongside the actual services. But with all the traffic management, routing and security features meshes bring, the complexity of those solutions grows as fast. Please find a 5-part series of articles on the services meshes which guides you through the introduction to service meshes, names a few examples, and demonstrates their internal architecture and working principles.

Unlocking the Power of Service Mesh: A Deep Dive — Part 1
Service meshes are important to consider because they provide a way to manage and control the communication between microservices in a…

#servicemesh #patterns

List of books for software design 🍼

Learning and mastering software design comes not only with practice, but also knowing the theory. Grab an article with 8 books you might appreciate to build better applications and more robust systems.

My Favorite System Design and Software Architecture Books for Experienced Developers
These are the best System Design and Software Architecture Books for Programmers, Developer, and experienced developers who want to become software architect

#systemdesign #books

A short note on idempotency 👷‍♂️

Exactly once is a holy grail of events-based systems. You possibly can not have this in general, but you can help the issue if your event handling is idempotent: receiving the event the second time won't affect the state of the system. Get a short note of the explanation.

Serverless Land
Your resource for learning serverless technology.

#idempotency

Actor model explained 👷‍♂️

Find another short note, this time - on the actors. Basically, the author tells the story of transitioning from the arbitrary procedure-style way of implementing a synchronization lock to an actor-based implementation, where you send the events from several computing instances in an async manner and letting another instance handle them thus removing the performance constraints. More details inside :)  

Understanding The Actor Model To Build Non-blocking, High-throughput Distributed Systems - Scaleyourapp
In this write-up, we discuss a non-blocking approach with the actor model to implement high throughput distributed systems dealing with concurrent traffic.

#async #patterns

Critique of the Spotify Model 🍼

And the last one for today is about team organization which is frequently part of an architect's job as well. You might have heard about Spotify's model with autonomous cross-functional teams and people misunderstanding the principles of those. Grab 2 articles on why it's important to have aligned autonomy, TechRadar, support for Golden Path and more!

My critique of “the Spotify Model”: Part 1
Part 2 here

Like the newsletter? Wanna receive new content earlier, than everybody else? Consider helping to run it at Patreon or Boosty. The funds go to pay for the hosting and some software like a Camo Studio license. Patrons and Boosty subscribers of a certain level also get access to a private Architecture Community and of course, every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August and Roman for already supporting the newsletter. Join them as well!