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.
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.
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.
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.
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.
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.
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.