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.

WARNING πŸ‡ΊπŸ‡¦

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.

The 100% availability trap
A widespread fallacy

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?

Strict-serializability, but at what cost, for what purpose?
Strict-serializability guarantees that transactions appear to occur in an order consistent with the β€œreal-time” ordering of those transactio...

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.

Exploring Kubernetes Operator Pattern
What is Kubernetes Operator? Kubernetes API design. Kubernetes Custom Resources and CRDs explained.

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.

The most complicated automated tests
Which tests are the most complicated ones?

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.

Continuous Deployment at Lyft
Continuous Deployment (CD) is when software changes, such as new features and fixes, are automatically deployed to our customers as quickly…

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.

All You Need To Know About HIPAA Compliant Software Development – NIX United
Lessons we learned by building 10+ HIPAA compliant software. How we ensure our clients get HIPPA compliance and software of high security standards.

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.

Test Containers and Clean Architecture
Overview Separating infrastructure from domain permit to identify the boundaries of our...

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 :)