Architecture Weekly #28

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.

WARNING ๐Ÿ‡บ๐Ÿ‡ฆ

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. ย 

GitHub - binhnguyennus/awesome-scalability: The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems - GitHub - binhnguyennus/awesome-scalability: The Patterns of Scalable, Reliable, and Performant Large-Scale Systems

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.

How to keep integrity control when publishing apps on third-party platforms
When the mobile apps get published off the official stores, the developers lose access to the list of important security features. Find out, how to secure them using application integrity control.

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.

Maximum number of database connections - Vlad Mihalcea
Learn what limits the number of database connections, no matter if youโ€™re using Oracle, SQL Server, PostgreSQL, or MySQL.

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.

Letโ€™s talk about Kafka
We get a lot of questions about Kafka. Is it good? Does it live up to the hype? And most frequently, when are we going to support Kafka in NServiceBus. But to fully answer these questions, itโ€™sโ€ฆ

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. ย 

Designing Data Structures for Collaborative Apps - Matthew Weidner

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.

The 5 principles of API-first development to build an true headless product
Moving to API-first development requires you to rethink and reassess your entire approach to product design and architecture.

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.

Architectural Frameworks, Patterns, and Tactics Are No Substitute for Making Your Own Decisions
Software frameworks greatly amplify a teamโ€™s productivity, but also make implicit decisions. The benefits and limitations must be understood because of the impact on the resulting system architecture.

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