Architecture Weekly Issue #26. 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 144 days 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.

Metastable failures 🀟

What are metastable failures? Those are failures once arise will bring your system down even if the root cause is identified and fixed. The paper researches such common failures based on many published post mortems.

Metastable Failures in the Wild | Aleksey Charapko

Observability for shifting right 🍼

Even if you put a lot of effort in testing in preproduction, there will be still some bugs which are too expensive to test that way: so you test in production. So you still shift right some QA. But in order to properly do that, you should have a decent level of observability. Read the examples in the article.

To Shift Right, You Need Observability
To successfully shift right, you need observability. Make sure that your teams have the right tools to fix potential bugs or issues.

SOA vs Microservices 🍼

SOA stands for Service Oriented Architecture. The frequent question is are microservices an example of it? Having a lot in common, the approaches have significant differences like scope, data duplication, single point of failure etc. IBM provides a good explanation article.

SOA vs. Microservices: What’s the Difference?
In this article, we’ll explain the basics of service-oriented architecture (SOA) and microservices, touch on their key differences and look at which approach would be best for your situation.

Database Design Tips 🍼

In both system design interview and real projects it is important to choose a proper data storage. A video below provides some hints on how to choose an database and what tradeoffs you should account for.

Release management for Microservices πŸ‘·β€β™‚οΈ

Semaphore CI tech blog covers different strategies of deploying microservices. You can have them in different repositories using separate CI/CD pipelines, or store them in the monorepo or having a combination of those. In any case you'll have a bunch of pros and cons which are covered in the article.

Release Management for Microservices
Imagine a microservices application consisting of dozens of continuously-deployed autonomous services. Each of the application’s…

BPMN and microservice orchestration πŸ‘·β€β™‚οΈ

BPM stands for business process model. There are several different BPM engines which allow to create and manage the processes using a BPMN notation. But they also allow to orchestrate microservices as well. Camunda blog has a series on how you can use it there.

Real-time collaboration with OT and CRDT 🀟

Do you know how Google Docs work? How does it handle collaborative edit? Turns out, there are several algorithms which allow to do so including Operational Transformation(OT) and Conflict-Free Replicated Data Type(CRDT). Examples and comparison inside.

Building real-time collaboration applications: OT vs CRDT
What do OT (Operational Transformation) and CRDT (Conflict-free Replicated Data Type) really mean? And which one should you use in your real-time collaboration solution?

The power of Event-Driven Architecture 🍼

Events are a very old concepts. Chirs Parlette in this episode of Kong's podcast speaks about how event driven architecture enables the modernization of software systems and making them future-proofing.

Patterns of Legacy Displacement: Back to Source πŸ‘·β€β™‚οΈ

Martin Fowler wrote another article on Legacy Displacement. When you have an overly complex integration in front of the database and you want to refactor, it might make sense to reach out to source data instead. The article explains how to do that and when to do it.

Revert to Source
Identify the originating source of data and integrate to that

How Apache Pulsar Works 🀟

Apache Pulsar is a competitor to Kafka. Jack Vanlightly as a contributor to Apache Pulsar updated his post of 2018, where he explains the internal principles of the product and how its guarantees are achieved.

Understanding How Apache Pulsar Works β€” Jack Vanlightly
I will be writing a series of blog posts about Apache Pulsar, including some Kafka vs Pulsar posts. First up though I will be running some chaos tests on a Pulsar cluster like I have done with RabbitMQ and Kafka to see what failure modes it has and its message loss scenarios. I will try to do t