Architecture Weekly
2.99K subscribers
4 photos
725 links
Architecture Weekly newsletter originated at https://blog.vvsevolodovich.dev. ~10 articles or videos on solution architecture and system design every week!.
Download Telegram
Video

Architecture Weekly #60 Highlights

Cloud-Bound Applications 🍼
If you consider the whole environment of the application running in a modern cloud, be it a container, a VM or a lambda function, you will discover two sets of bindings: compute bindings and integration bindings. While the first set is transparent to developers and basically means a form of delivery(docker container or just a binary), the second one includes all sorts of APIs and protocols to leverage the platform resources and external services. If you add their stateful and asynchronous binding you will get a landscape of a Cloud-Bound application. To know more, follow a long-read which is not poor with the illustrations though.

#cloud #architecture #vision

Container Security Fundamentals part 2 🀟
Containers are used everywhere, and there are tons of best practices around container security. But suppose you need to understand why those practices are in place, or you just want to understand container security better. In that case, I recommend reading a series of articles on container security fundamentals by Datadog. They explain how the containers are mostly Linux processes and continue to show that Linux applies the namespaces across multiple parameters to secure those. Follow the details inside.

#security #linux

Master the Art of Caching for System Design Interviews πŸ‘·β€β™‚οΈ
Caching is an essential technique in system design, which can help improve the performance of applications, reduce latency, and save resources. However, caching can be a double-edged sword, as it can also introduce some challenges, such as consistency and invalidation. This article provides a comprehensive guide on caching, covering everything from the basics to the advanced topics. It starts with an introduction to caching, including its definition, benefits, and types, such as in-memory, disk-based, and distributed caching. It then dives into the different caching strategies and algorithms, such as Least Recently Used (LRU), Least Frequently Used (LFU), and Random Replacement.

#systemdesign #caching #performance
❀1
Architecture Weekly #60 Follow-Up

Database Versioning Best Practices πŸ‘·β€β™‚οΈ
You can think that all the industry switched to versioning of the database schemes long ago and everybody is using something like Flyway or Liquibase for that. The reality is that it is far from true. That's why I decided to highlight a several-years old, but still very actual post by Vladimir Khorikov on Database Versioning. Grab 6 best practices on storing version inside the db itself, having the immutable SQL files, keeping them in the source control and some others.

#database #db #bestpractices

Large Scale Ad Data Systems at Booking.com using GCP 🍼
How much money Booking.com spends on advertising yearly you think? It's almost 5 billions! With such a budget, you definitely want to spend it wisely. In this article in their Engineering Blog, Warren Qi shares how Booking.com is using BigQuery to analyze the efficiency of their ad-campaigns, and how the Spanner is leveraged to combine different data into useful views.

#cloud #gcp #booking

How to do distributed locking 🀟
Locking is a typical approach for consistency: for example, you lock a row in a database so that only one process can modify it. However, in a distributed system it becomes much harder due to network delays. I want to share another old article on how to handle distributed locks by Martin Kleppmann - with an example of Redis. Grab a read.

#distributedsystem #locking

Zachman Framework explained in 12 minutes 🍼
Imagine you're looking into positions of Enterprise Architect, Chief Architect or a CTO. In any case you would have to understand a lot about the company. Zachman matrix is one of the enterprise frameworks that will help you to ask the most important questions on all the levels that matter. Follow the video by Mark Richards - a co-author of "Fundamentals of Software Architecture" and its sequel.

#ea #enterprisearchitecture

Transactional Data Lake with Incremental ETL at Uber πŸ‘·β€β™‚οΈ
Batch processing is a powerful tool able to process tons of data. However, if the major part of this data does not change much, you can lose on the efficiency and the latency. Uber's blog features an article by Sara Wilmes-Reitz on the idea of incremental ETL processes, allowing them to update the information much quicker and with lower latency. Follow the article for details.

#bigdata #etl #datawarehouse

Domain-Driven Design with Vlad Khononov 🍼
And this week I recorded an interview with Vlad Khononov - an author of "Learning Domain-Driven Design" and other O'Reilly-published books. Watch a video to find out how the DDD can help you be a better architect.

#video #ddd #interview

Like the newsletter? Wanna receive new content earlier, than everybody else? 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 and of course every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August and Roman for already supporting the newsletter. Join them as well!
πŸ‘7
Architecture Weeekly #61

Video

Highlights
Google Sheets as backend πŸ‘·β€β™‚οΈ
When you start a new project you probably think, hey, I would pick MongoDB, or I want a PostgreSQL installation. But some successful projects start with none other than Google Sheets as their storage. It appears it is scalable, simple, and it's easy to integrate with. Find a great post by Levels.fyi - a site with literally salary bands of IT industry - where they show the evolution of their system design, which started with Google Forms and Google Sheets.

#casestudy

Reality Check Pattern 🍼
Have you ever encountered your navigation software telling you you're in a river while you were driving a highway? Well, Uwe Friedrechson just did, and a resiliency architect, he immediately came up with the pattern which he called "A reality check". It means that your system should check the signals from the outside world, and, if they stop making sense, change the state to something like safe mode, where it could not mislead the user or harm them. Grab more examples and conclusions inside πŸ™‚

#architecture #pattern #resilience

Distributed Machine Learning at Instacart πŸ‘·β€β™‚οΈ
Several issues ago I mentioned the KubeRay - a platform for running ML workloads on Kubernetes. And this week Instacart published a piece on building the distributed ML platform using exactly that. Find out, how they managed to build a scalable, efficient, diverse platform which allows for development and maintenance simplicity, as well as seamless integration with the previous platform called Griffin.

#ml #casestudy #k8s #kubernetes #kuberay
Architecture Weekly #61 Follow Up

AWS Aurora receives Write Through Cache πŸ‘·β€β™‚οΈ
Replication lag appears when the replication stream is generated too fast for a replica to keep up. To improve this situation, Write-Through Cache was introduced which decreases the replication lag by 44%. More details in the article.
#database #cloud #aws

Architects, Anti-Patterns and Organizational Fuckery 🍼
What is the difference between Principal Engineer and Software Architect? Should Architect be a Role or a Title? How to avoid screwing up your organization by introducing the Architects rotting up in their Ivory Tower? The person named mipsytipsi wrote a long read after a discussion in Twitter where the attitude toward the title was collected. Funny, that the post confuses the title and the role... but it's still an entertaining read nonetheless.

#architect #philosofy

Cloud Native Landscape πŸ‘·β€β™‚οΈ
The amount of tools for developing, deploying, running and monitoring cloud-native apps is over 1000. So you face a problem: what tools you would like to solve the expected issues? Worry no more: Cloud-Native Foundation has a tool called landscape, where you can find all the tools conveniently laid out by the area of applicability.

#cloud #cloudnative

Workflow Orchestration πŸ‘·β€β™‚οΈ
The common approach to a distributed transaction is a saga either orchestrated or via choreography. However, sagas compensation can not be always possible or at least expensive, like refunding the money sent for payment due to commissions. One of the ideas to solve the problem is the workflow approach, which camunda or temporal.io is implementing. This way you have a separate component which responsibility is only to manage the workflows and ensure they finish or complete gracefully. Follow the article for details.

#patterns #distributedsystems

Contract-Driven Development πŸ‘·β€β™‚οΈ
The "Contract-Driven Adoption" article on InfoQ explores how contract-driven development can improve the adoption of new technologies and tools in organizations. It discusses the benefits of using contracts to define expected behaviours and outcomes, reduce ambiguity, and enable faster feedback and iteration. The article covers different types of contracts, provides examples of real-world projects, and offers practical tips for using contract-driven development. Overall, it provides a useful perspective on how contract-driven development can facilitate technology adoption and improve collaboration among teams.

#microservices #contract #api

Microservice Dependency Graphs 🀟
The "Characterizing Microservice Dependency Graphs" article on MuratBuffalo's blog discusses a study on analyzing over 100 microservice systems using network science techniques to identify common patterns and properties. The article highlights key findings, such as the prevalence of power-law distributions, clustering, and hierarchical structures in microservice dependency graphs. The authors discuss the implications of these findings on the design and management of microservice architectures, such as the need for monitoring, fault tolerance, and modularization. Overall, the article offers insights for improving the scalability, reliability, and maintainability of microservice architectures.

#microservice #paper #tracing

Like the newsletter? Wanna receive new content earlier, than everybody else? 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 and of course every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman and Egor for already supporting the newsletter. Join them as well!
πŸ”₯3
The biggest lie of IT industry
https://youtube.com/shorts/5lAIt_L6Hps
πŸ‘2
Why ChatGPT won't replace developers. Post for patrons and boosty subscribers

Patreon.
Boosty.
πŸ‘Ž4😁3
Architecture Weekly #62 Highlights

This week I decided to give YouTube shorts a try and made a couple of them. Tell me how did you like it? What are the good ideas for shorts?

Capturing a billion Emojis πŸ‘·β€β™‚οΈ
Sports events are crowded - and on the internet even to a bigger degree. The companies who handle the broadcasting are willing to make them interactive so that users can show their reactions to particular events of the show - with emojis of course. To make it happen, there should be some architecture in place. Find a good piece of engineering to solve this peculiar problem.

#highload #casestudy

Uptime Guarantees - A Pragmatic Perspective πŸ‘·β€β™‚οΈ
How frequently do you hear from the business they need 100% availability? More often than me getting incorrectly called Vlad(that's another name!). How do you turn down such requests? Get a pragmatic perspective: how to reason about the actual availability, how much does it cost to come even to 4 nines(99,99%) and what do the cloud guarantees mean?

#cloud #cost

DuckDB Hype πŸ‘·β€β™‚οΈ
A few issues ago I featured a post by Jordan Tigani with the statement that Big Data is Dead. But what is up to the replacement then? EasyData! DuckDB is trying to do the same for data analytics as SQLite doing for transactional processing. Easy, small, embeddable, lightning fast - all of this is about DuckDB. Check out the post by Oliver Molander where he analyzes all the hype around it.

#db #data #duckdb
❀2
Architecture Weekly #62 Follow Up

Vespa vs Elasticsearch vs Solt - Search Engine Comparison 🍼
Picking up a full-text search engine can be tricky, considering the different use cases and the range of capabilities offered by the engines out there. Should you pick Vespa? Maybe Solr will fit your task better? Grab a short article with a comparison table between Vespa, Elasticsearch and Solt.

#searchengine #solr #elasticsearch

Predicting demand at Airports 🀟
The taxi operators at airports face a problem: if there is not enough demand, drivers waste their time. If there are not enough taxis though, the experience for riders is unpleasant. Uber is trying to solve this problem with Machine Learning and predictive models. In this article you will find the formulas and the reference architecture for it, but I still wonder why checking out the arrivals table is not sufficient.

#ml
Operating Lambda: Performance Optimization πŸ‘·β€β™‚οΈ
When you start using Lambdas, the first problem you observe is a long startup time. A typical solution is to schedule an event which will ping your function every once in a while to ensure a warm environment. However, this solution is not universal: it does not help during increased load or starting a Lambda in a different AZ. Grab the read about available performance optimizations for Lambda and the anatomy of Lambda's start.

#cloud #aws #lambda #serverless

The complete guide to System Design in 2023
And another guide to System Design Interviews! This one will get you through all the foundational terms you need to be aware of to pass an interview. It covers storage types, scaling, redundancy, patterns, databases and many more. Follow it on!

#interview #fundamentals

A Simple Framework for Architectural Decisions
It sounds a bit too pretentious, but this article covers some clues you would like to adopt to simplify the technical decision-making in your organization. Those include building a Tech Radar, formulating the best practices like REST API or Observability standards, and documenting the decisions in the form of RFCs and ADRs. Grab more details inside!

#architecture #documentation

Migrating 125.000 users from Auth0 to Supabase
Kevin Peters decided to share the experience of Parqet company of migrating user authentication and authorization from Auth0 to Supabase. The author highlights the reasons for the migration, explains the process of setting up Supabase, and provides an in-depth analysis of the migration process. The article also compares the pricing of Auth0 and Supabase. It serves as a helpful guide for anyone looking to migrate user authentication and authorization from Auth0 to Supabase.

#casestudy #migration #authentication

Like the newsletter? Wanna receive new content earlier, than everybody else? 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 and of course, every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman and Egor for already supporting the newsletter. Join them as well!
πŸ‘4❀2
Architecture Weekly #63 Highlights

This week I conducted an interview with Charity Majors(CTO at honeycomb.io). She told me so much about state-of-the-art modern observability, and it will be useful for you as well! Watch thoroughly!

Growth of AI Through a Cloud Lens 🍼
Do you remember the start of cloud computing? There was a lot of scepcis, like "real business won't use it", shifting to "Fortune 500 companies won't use it", until everybody was using cloud. Mitchell Hashimoto, a CTO of Hashicorp, recalls this trends and tries to analyze if it applies to the raise of LLMs. How much impractical for business the LLMs are? And how this area of impracticality will shrink in the future? Get a long read!

#ai #cloud

Twitter's Recommendation Algorithm πŸ‘·β€β™‚οΈ
Have you ever ranted about how your tweeter feed contains some weird replies to the people you're not even interested in? Well, last week Twitter shared the source code for their recommendation service and wrote a blog post about it's architecture. Grab the details inside to both get some knowledge and improve your twitter visibility!

#casestudy

Spyware vendors use 0-days against mobile OSs and Chrome πŸ‘·β€β™‚οΈ
Security news here. In Google, there is a Threat Analysis Group(TAG), which tracks malware vendors. Recently they discovered couple of highly impactful campaigns which use 0-days in Android, iOS and Google Chrome. In the article you will find the exploit chains description and what TAG has done about them

#security
❀1
Follow Up

Media Understanding Platform for ML Innovations
πŸ‘·β€β™‚οΈ
Netflix serves you content, but it also should help you finding it. Previously, the editor had to go through the hours of the shows hosted on the platform to pick up highlights or choose the engaging, story-telling dialogues. So Netflix decided to improve the efficiency of editors' work, introducing a solution to find the scenes in the show by a request, like "red racing car" or "dialogue with tears". Find out, what solution they ended up implementing!

#ml #batchprocessing

Cloud-Native Applications Design Principles 🍼
Cloud-Native applications is not merely containers with a couple of health probes. They are built with the set of principles in mind, like loosely coupled architecture, API First approach and others. Grab an article from JFrog blog to know 6 principles in details!

#cloud #architecture

Service level objectives 101: Establishing effective SLOs πŸ‘·β€β™‚οΈ
The article titled "Establishing Service Level Objectives" on Datadog's blog provides a comprehensive guide to help organizations define, measure, and manage their Service Level Objectives (SLOs). The article explains how SLOs can be used to set clear and achievable performance targets for software systems and services, and how they can help organizations improve their overall service reliability and customer satisfaction. The article also provides practical tips on how to establish effective SLOs, including selecting appropriate metrics, defining appropriate thresholds and error budgets, and using feedback loops to continuously improve performance. Additionally, the article highlights the importance of aligning SLOs with business objectives and involving stakeholders in the SLO definition process

#observability

Getting started with small-step operational semantics 🀟
We discussed sagas many times. But now I want to share with you an article by Dominik Tornow about the formal language that helps to describe those. Grab on in the Temporal.io blog.

#saga #distributedtransaction

The cost of Architectural Complexity 🀟
It's pretty obvious that the more complex architecture you have, the more it's operation will cost. However this is not the only penalty you might experience. For example, the number and severity of software bugs increases with the complexity as well. What else? Follow the Abi's review of the paper from 2013 on the cost of architectural complexity.

#architecture #paper

Lambda vs Kappa Data Processing Architecture 🍼
The last one for today is the guide on the 2 approaches to the data processing architecture: Lambda vs Kappa. It has nothing to do with Lambda functions though. So the former is more complex and includes 2 data processing streams for realtime and batch processing; the latter is simplified and trying to do the job with only a single pipeline treating everything as a data stream. Find more details inside.

#data #architecture

Like the newsletter? Wanna receive new content earlier, than everybody else? 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 and of course every supporter gets early access. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel B, Pavel, Robert, Roman, Iyri, Andrey, Lidia, Vladimir, August, Roman and Egor for already supporting the newsletter. Join them as well!
Already tomorrow, at 5PM CET, I am speaking with Baruch Sadogursky on Developer Advocacy, work at Gradle and all that stuff! Book your calendars and of course, subscribe. Link to the stream below πŸ‘‡

https://youtube.com/live/KXeTwgxs5wU
πŸ”₯4