Architecture Weekly Issue #49. 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.


It's already been 312 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.



LastPass is a popular password management tool that has been plagued by security issues for years. Despite its widespread use, the latest security breach of LastPass should serve as a wake-up call for users to consider alternative options. In this article, Jeremy delves into the history of LastPass' security problems and explains why it is time for users to consider moving on to more secure password management solutions.

Jeremi M Gosney :verified: (
I recently wrote a post detailing the recent #LastPass breach from a #password cracker’s perspective, and for the most part it was well-received and widely boosted. However, a good number of people questioned why I recommend ditching LastPass and expressed concern with me recommending people jump sh…


The complete guide to protecting your APIs with OAuth2(part 1) 👷‍♂️

I doubt there are many IT specialists who never heard the term JWT, standing for JSON Web Token or OAuth. The standard helps manage access to the major part of the Internet resources, thus it's important to understand not only how to use it in the first place, but also how to do that securely. Stackoverflow blog got a long article explaining the OAuth Standard and security best practices for it.

The complete guide to protecting your APIs with OAuth2 (part 1)
OAuth2 is one of the most popular specifications for API authentication today, though wrapping your head around it can be a challenge.

#security #api

Observability - State of Art 22' 👷‍♂️

There is no need to sell observability to anyone in 2022: now we treat it as an essential part of our systems and a natural requirement. But what observability consists of? What types of signals and data do we want to monitor? Let's figure it out with an article by Daniel.

Observability — State of Art 22′
What it is Observability? What are the products available to implement a good Observability in our system?



PostgreSQL + TimescaleDB: 1,000x Faster Queries and 90% Data compression for time-series data 🍼

TimescaleDB is a solution on top of PostgreSQL for time-series data. Focusing on a single problem allows for providing incredible optimizations like several orders of magnitude faster queries and an order of magnitude less storage requirement. Read an article about those advantages in the Timescale blog.

PostgreSQL + TimescaleDB: 1,000x Faster Queries, 90 % Data Compression, and Much More
TimescaleDB expands PostgreSQL query performance by 1000x, reduces storage utilization by 90%, and provides time-saving features for time-series and analytical applications—while still being 100% Postgres.

#postgresql #timeseries #db

How to learn Software Design and Architecture 🍼

Going from a software developer intern to a Solution Architect took me 10 years. I would definitely appreciate any kind of a roadmap to help make this journey a bit shorter time-wise. Khalil Stemmler wrote a detailed map on mastering software design. I believe it lacks 2 or 3 stages, but it is a very good attempt to map the knowledge required. Find it below.

How to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Map | Khalil Stemmler
Software Design and Architecture is pretty much its own field of study within the realm of computing, like DevOps or UX Design. Here’s a map describing the breadth of software design and architecture, from clean code to microkernels.

#systemdesign #learning

Why not DNS? 👷‍♂️

Searching for a proper pod in a K8s cluster requires name resolution. And hopefully, DNS would solve that problem for us. However, microservice instances come and go significantly faster than website A-records. That's why we need KubeProxy. A detailed explanation inside.

Why not DNS?
Why is KubeProxy necessary? Couldn’t simple DNS records do the job?

#kubernetes #dns #k8s

Microservices integration Using Contract-Driven Development

Integration tests are good, but they can catch a problem only when the integration is done. In order to have a shorter feedback loop, we can test the API of each service in isolation against the commonly shared contract, which is API description in a form of lets OpenAPI. Checkout the strategies and a suggest tool do so below.

Microservices Integration Done Right Using Contract-Driven Development
Build your microservices and micro-frontend in parallel and deploy them independently without worrying about integration issues by leveraging API specifications such as OpenAPI and AsyncAPI as executable contracts to shift left the identification of compatibility bugs with Contract Driven Developmen…

#microservices #contracttesting #api

Kafka Stream Transformation Patterns and Message Reprocessing 👷‍♂️

Several months ago my team decided that we need a refactoring for a fiscalization solution: it was based on crons and virtualized queues in a DB and was a source of several painful problems linked to reprocessing the invalid records. We created a design using Kafka, and now I found a cool article that addresses pretty much the same problem: what do you do if you don't want to stop the processing of an event stream in case of a message with incomplete or wrong info? Follow it for details.  

Kafka Stream Transformation Patterns and Message Reprocessing – Stephen Nimmo


Like the newsletter? 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. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel, Robert, Roman, Andrey and Lidia for already supporting the newsletter.