Architecture Weekly Issue #29. 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 been 165 days of the crazy, brutal, 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.
100% Availability Trap 🍼
Amount of people believing you can reliably have service 100% available is surprisingly high. Uwe Friedrichsen shares his take on why it happens, the consequences in our systems and what to do about it.
Strict-serializability, but at what cost? 👷♂️
Murat published a surprisingly clear blog piece - this time on the cost the system has to pay for the strict serializability. It starts with describing what is difference between linearizability and serializability and what guarantees they provide. In the end, Murat asks, does business really need that strictness at the implied cost?
Kubernetes Operator Pattern 👷♂️
Kubernetes runs tons of payloads for many companies across the globe. In order to control custom resources like databases, externals VMs etc, there is an Operator pattern, that you can apply. Read further what it is precisely and how to create one.
Complicated Automated Tests 👷♂️
Testing Strategy is an important part of an architect's job. However we need to understand when to use an appropriate type of test, and what complications we will face. Oleksandr Romanov describes different types of tests and discusses what can go wrong with them.
Live Streaming Reference Architecture on AWS 👷♂️
One of the domains you can stumble upon is live streaming: creating video and distributing it to the subscribers in real-time. The task is pretty complex given you need to handle different bitrates, edge latency, security and other aspects. AWS has a reference architecture on it, but be aware: it uses a lot of hosted services, so if you decide to build your own, you will need to replace them.
Data Types and Algorithms for Convergence 🤟
Last time there was a link to a CRDT article. This time we include a short note from Martin Kleppmann on data types which can be used for convergence: basically the eventual consistency contrary to the consensus.
CD at Lyft 👷♂️
You hardly can see a modern software system without Continuous Deployment. Lyft published a piece about how they organized their deployment system based on Jenkins to deploy their system to production.
How to create HIPAA-compliant Software 👷♂️
HIPAA is a Health Insurance Portability and Accountability act. Basically, those are legal requirements for Healthcare Systems in the U.S. Creating such software can be hard and expensive. But if you happen to work with one, you definitely want to know how to make your software development processes compliant. Proceed with the article.
Test Containers and Clean Architecture 👷♂️
Test Containers are a way to perform integration testing. They allow testing your integration with Kafka, with a Database, with an external service etc. Find an article on how to set up a test which can test a database integration.
This newsletter is hosted on GCP and uses Mailgun to send the emails. The cost is ~$25 per month. Liked it? Consider helping to run this newsletter at Patreon :)