Architecture Weekly #49
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.
WARNING 🇺🇦
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.
Video
Highlights
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.
#security
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.
#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
Follow-Up
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 #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.
#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.
#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 #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
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.