Architecture Weekly Issue #28. 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 158 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.
Database Research 🍼
The database community published a new report on the state of the databases in the industry. They explain what changed during the last 5 years and the new challenges for the industry, including Data Governance and updated Cloud strategy to account for the new technologies and consumption models.
Awesome Scalability 👷♂️
I continue sharing the awesome reading lists. It's time to give one about scalability. It is a list of verified cases with millions of users and articles from credible engineers.
Keeping integrity control of mobile applications published offstore 🍼
This week I wrote an article on the security measures you have to take once you decide to publish off the official stores. Leaving the platform strips you from the list of security features like secure delivery, app attestation etc. The article includes a checklist for you to ensure the integrity of your valuable app.
Maximum number of database connections 👷♂️
Vlad Mihalcea wrote an article on how to think about the number of database connections and how to choose a proper amount for maximum performance independently of the database engine.
Is Kafka a Message Queue? 🍼
A clear understanding of the difference between a distributed log which Kafka is and a message queue can be challenging. Here's a nice article which lays down the relation between the two and explains when to pick either.
Designing CRDT 🤟
This week I also wrote a system design case for Google Docs. Being a collaborative app, it should use some sort of data structure to resolve the conflicts. Google Docs uses Operational Transformation(OT). But there is another approach called CRDT. Read an article on how we can design such an algorithm.
API-First development principles 🍼
In the past projects going API First saved me a lot of pains: mistakes, typos, incorrect types, and event incorrect solution design. Treating API as a product and going API First helps a lot with them. Find other principles in Algolia Blog.
Viewstamped Replication Protocol Revisited 🤟
Find a paper by Barbara Liskov and James Cowling on the update of the Viewstamped Replication protocol. The whole thing is about handling the node failure and how the group can reorganise to handle it.
Don't allow Architecture Frameworks to substitute your Decisions 👷♂️
The toolset an architect has is massive: architecture frameworks, collections of tactics for different Quality Attributes, architecture patterns etc. Although tools are obviously helpful they can push you in the wrong direction. A new article at infoq.com on how you can avoid the influence of the tools on the decisions to be made.
Software Visualization Challenge by Spotify 👷♂️
Documenting the software architecture is not an easy task. We have plenty of tools and notations. Spotify published a blog post on their approach to documenting their systems using C4, the Backstage tool and their own notation System Model.
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 :)