Architecture Weekly #169 - 4th March 2024
Welcome to the new week! If you somehow missed it, a reminder to check the last week’s webinar with Andrea Magnorsky about Bytesize Architecture Sessions! If you’re curious how to enhance your system design with a quick design sessions that’s something for you. I called it “a Pomodoro for design workshops”. See the recording! Marten got a new, big, major release! Work on it lasted a few months, and most of the overhaul was made by Jeremy D. Miller. It brought a big improvements around performance, querying, resilience and projection handling. Read more in Jeremy’s blog post: Emmett, my young OSS child, is also spinning its wheels. We just got support for ESDB and integration tests. Check more in the release notes. I’ve been asked if I actually sleep. I do, at least once per night! Jokes aside, we're too often trying to show ourselves as busy bees. Sometimes it's a 21st-century fetish, sometimes it's accidental. In both cases, this can be dangerous as we may be putting pressure on other people who follow us. I wrote a short article on that for you and myself not to forget about that. Too often, people tell me that I'm constantly busy while I'm working less than I did a few years ago. Knowing myself and how mental health is important, I should also look more at not leaving such false impressions as that can cause FOMO for others. If you’re a leader, you should also consider the consequences, e.g., sending emails in late hours, etc. Moving on! Let’s do the roundtrip through the big tech blogs and case studies!
However, while this new setup aims to keep things running smoothly, it makes the system more complex. For the engineers maintaining it, this complexity means figuring out why something went wrong or how to fix it might not be straightforward. While Cinnamon could make Uber's services more reliable for users, it also requires the engineers to navigate through a more complicated system to keep everything in check. This can be fine for the Uber scale, but remember that if you consider applying a similar approach to your scenario. Michał Grabowski wrote on the risk of blindly copying successful architectures. We should take inspiration and analyse it, but always remember to compare our context and evaluate differences. Still, it’s worth knowing the directions and analysing the impact of the decisions. It’s also worth knowing the trends. One of them seems to be cell-based/cellular architecture. Over two months ago, I went through a Slack case study on applying it. Now DoorDash did the same: DoorDash and Slack both adopted cell-based architectures, but their implementations and motivations diverge, reflecting their operational needs. The need for enhanced system resilience and reliability drove Slack's implementation of a cell-based architecture. Following a network outage, Slack introduced a manual traffic management feature that allows engineers to quickly redirect traffic away from affected areas, minimizing user impact. DoorDash addressed the challenge of rising costs due to data moving between different data centres by setting up a system that automatically manages where data goes (based on Envoy and Service Mesh). Essentially, their tech ensures that data stays close to where it's being used, reducing the need to send data over long distances, which can get expensive. This setup helps DoorDash save money by avoiding unnecessary costs. Both approaches have pros and cons. DoorDash introduced automation but also increased the complexity. Slack reduced complexity by semi-automation. While DoorDash automated its process to save costs, Slack's approach lets team members step in quickly to keep everything working right for their users. Cell-based architecture is an intriguing technique and highlights the need to understand where your data is and how you use it. Without that you won’t be able to shard it and put into the cells. Stripe wrote a general explanation of their financial storage: Ledger database. They built their own solution focused on storing and tracking financial data. Stripe's Ledger system, an auditable and immutable log. The setup is fine-tuned for their financial network, and handling complex money movements. That’s critical for maintaining high reliability while processing millions of transactions. There’s an overlap between that and event stores. They both are focused on storing immutable data and its quality. Event Sourcing works well for processes that can be modelled as state machines, and Stripe’s Ledger also makes it a foundational piece. It also allows events notifications, auditability and enhanced tracing (which is crucial for fraud detection etc.). That’s also the main difference between event stores and ledger databases. Event stores are general purpose databases, while ledger focused on financial data semantics. Going down the niche allows domain-specifics optimisation, but also limits the scope of usage. Still, that also proves that Event Sourcing is not as niche as it may seem. Read more: Continuing with the event-driven tooling, tradeoff and how semantics impact the real application, check out David Boyne’s talk, where he goes through the common mishaps and misconceptions around it:
Don’t miss also great write-ups on how to document your software, both the current, past and the intended state:
Check also other links! Cheers Oskar p.s. I invite you to join the paid version of Architecture Weekly. It already contains the exclusive Discord channel for subscribers (and my GitHub sponsors), monthly webinars, etc. It is a vibrant space for knowledge sharing. Don’t wait to be a part of it! p.s.2. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, and putting pressure on your local government or companies. You can also support Ukraine by donating, e.g. to the Ukraine humanitarian organisation, Ambulances for Ukraine or Red Cross. Architecture
DatabasesTestingFrontendAIJava.NET
WebAssemblyCoding LifeManagementIndustry
SecurityYou're currently a free subscriber to Architecture Weekly. For the full experience, upgrade your subscription. |
Older messages
Webinar #17 - Andrea Magnorsky: Introducing Bytesize Architecture Sessions!
Tuesday, February 27, 2024
Watch now (90 mins) | We all struggle with too-long meetings, confusing design discussions and analysis paralysis. How can we reason better about our systems in a collaborative way? Does your team
Architecture Weekly #168 - 26th February 2024
Monday, February 26, 2024
Today's leitmotif is revisiting our past decisions. We discussed lessons from 4 years of building and running infrastructure in a startup. Then we went to the discussion around CockroachDB vs
Architecture Weekly #167 - 19th February 2024
Monday, February 19, 2024
We started this time of the semi-philosophical discussions like what's the use case? Are pros and cons the same as consequences? Then we got more to the ground touching unusual topics like end-to-
Architecture Weekly #166 - 12th February 2024
Monday, February 12, 2024
We started with the announcement about Emmett - my new library and smoothly transitioned into the discussion on data governance. Firstly, in event-driven systems, data sovereignty is an issue of
Architecture Weekly #165 - 5th February 2024
Monday, February 5, 2024
We started with the DevOps and Platform approach pitfalls, discussing Charity Majors's take and adding Conway's law into that. Then we reviewed the strategies for architecting multi-region
You Might Also Like
Issue 315 - Look ma, tight parallel park, no radar!
Thursday, May 2, 2024
View this email in your browser If you are just now finding out about Tesletter, you can subscribe here! If you already know Tesletter and want to support us, check out our Patreon page Issue 315 -
Full-Stack .NET Development, Creating Reactive Applications in .NET, More
Thursday, May 2, 2024
Home | News | How To | Webcasts | Whitepapers | Advertise .NET Insight May 2, 2024 THIS ISSUE SPONSORED BY: ■ How to Build Interactive Blazor Apps with WebAssembly ■ VSLive! Hands-On Virtual Training
Daily Coding Problem: Problem #1429 [Easy]
Thursday, May 2, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Sumo Logic. Given a array that's sorted but rotated at some unknown pivot, in which
Ranked | Which Country Has the Most Billionaires in 2024? 💰
Thursday, May 2, 2024
According to the annual Hurun Global Rich List, the US and China are home to nearly half of the world's 3279 billionaires in 2024. View Online | Subscribe Presented by: The economy is changing. Is
⚙️ Rovo
Thursday, May 2, 2024
Plus: Microsoft are (were?) terrified of Google's AI
Have VPN connection issues? This might be why
Thursday, May 2, 2024
DJI Power station; Studying with AI; Best gaming PCs -- ZDNET ZDNET Tech Today - US May 2, 2024 placeholder Having VPN connection issues? Microsoft warns the April 2024 Windows update is to blame If
Programmer Weekly - Issue 203
Thursday, May 2, 2024
View this email in your browser Programmer Weekly Welcome to issue 203 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "The hardest part of design is keeping
Python Weekly - Issue 648
Thursday, May 2, 2024
View this email in your browser Python Weekly Welcome to issue 648 of Python Weekly. Let's get straight to the links this week. News Fake job interviews target developers with new Python backdoor A
A new approach to access management for the way we work today
Thursday, May 2, 2024
Announcing 1Password® Extended Access Management ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Web Tools #563 - Frameworks, JSON/DB Tools, Vue, Nuxt.js
Thursday, May 2, 2024
WEB VERSION Issue #563 • May 2, 2024 Advertisement The Complete JavaScript Course 2024: From Zero to Expert This is an up-to-date JavaScript course covering modern techniques and features that will