Architecture Weekly #181 - 27th May 2024
Welcome to the new week! When you’re reading this article I’m currently at Domain Driven Design Europe conference doing 3-day workshop on Production Grade Event Sourcing. I’ve spent ton of time preparing for it, I hope that it’ll pay off for the attendees, and they’ll expand their knowledge on how to run Event Sourcing system efficiently. If you’re also at the conference and you see me walking around, please come and say hi, I’ll be happy to talk with you! In the 2nd edition of Papers We Love, we tackled the famous article Mel Conway’s article where he introduced his law. We’ve read the whole paper to check how up-to-date it is nowadays. Not surprisingly, it has stood the test of time. It’s a basis for properly modelling our system design and organizational structure. It impacted all current socio-technical approaches, such as Team Topologies, both agile and more rigid approaches. Watch (or listen as a podcast) the episode and drop me a note with your thoughts and experience facing the Mel Conway law. I’m sure you have plenty of them! Check also additional reading: "Just do left fold" or "Just apply event one after another" is common advice on handling messages and event-driven processing. They're fine from the logical perspective, but in production, you really need to do better. If you want to get proper performance and throughput, you'll eventually need to incorporate batching. AsyncEnumerable in .NET is a nice abstraction that allows you to handle both pull-based and push-based communication in a unified, straightforward way. Still, by default, it follows the "just do left fold" advice. In the latest article, I showed how to do better and handle batching in AsyncEnumerable without losing its clarity. What are your thoughts? To batch or not to batch? Staying on the messaging and event-driven design topic, let’s do a follow up from the two weeks ago. Adam Bellemare did a follow up on his article on fixing errors in event. One nitpick from me, I wouldn’t say that Event Sourcing is about deltas, I think that’s oversimplification. It’s about capturing what has happened, this may look close to delta, but it’s not. Those are all informations about business fact. Still, even with that the advice on the article are correct, even for Event Sourcing, so good job! Another follow up, this time from last week. We discussed wiping out by Google the whole customer Cloud account. They of course said that’s a rare experience. If you think that indeed such big issues cannot happen too often, Google will say “hold my beer”. Check the Register coverage:
Google did “maintenance automation intended to shutdown an unused network control component in a single location.’ And this time they didn’t wipe out customer account, but they 33 services in 40 regions for two hours and forty-eight minutes weren’t working correctly. I don’t even know how to comment it. Reading that, I’m happy that I didn’t have yet chance to work on Google Cloud. If you like networking post mortems check also the bug retrospective explained by Antithesis. Interesting is that’s a tool for finding bug. So it’s about finding a bug in a tool to find a bug. Bugception. Another follow up, Architecture Weekly doesn’t forget! 3 months ago we discussed Stripe Ledger, their own database build and optimised for storing financial data. It seems that’s fashionable, as Uber did the same. What’s more, they now moved the storage from DynamoDB into it and provided they case study. What’s Uber LedgerStore?
Sounds close to event stores, but it’s not the same. Let me quote my explanation (yeah, I know…) from discussing Stripe version:
Same apply here, still, let’s move on to explain how they did it. Uber's migration to LedgerStore involved transferring over a trillion ledger entries, which caused significant challenges around data integrity and system performance. To ensure accuracy, Uber used shadow validation, comparing outputs from the old and new systems to detect discrepancies and achieved a 99.99% accuracy rate. They tackled the large data volume by using Apache Spark for incremental backfill, processing data in chunks to avoid system overloads. Performance issues arose from poorly distributed index data and inefficient indexing methods that led to excessive full-record scans. To fix these, Uber optimized partition keys for better data distribution and revised their indexing approach to reduce unnecessary scans. So as always, indexes. Whatever database type you choose, that’s always a PITA. Continuing the databases, but more general usage. Mike Stonebraker and Matei Zaharia, so people behind the Postgres and Databricks decided to build an Operating System dedicated for data processing. Now they build a Cloud serverless data platform. Of course, you’ve heard that song, but having those people behind it make it worth checking out. They’re saying that it’s “a transactional serverless platform built on DBOS, targeting stateful Typescript applications”. They offer reliable execution and time travel. All of that on top of SQL. I’m not sure how far they’ll be able to go with it, but it’s an intriguing case, backed by the research on MIT and serious people. In the same way, you should check Mojo language, a Python-compliant Rust killer designed for AI solutions. Yeah, I felt like too much bs when I saw that, but then I listened the Developer Voices podcast episode with its creator: And then I realised that it’s the same guy that was behind Swift language and LLVM. Check this episode, Developer Voices is a nice geek-out podcast, that I recommend, and Chris is nicely explains the assumptions behind Mojo, and that kinda clicks! Speaking about languages, Kotlin 2.0 was released. Check more in the great coverage by Artur Skowroński, and if you’re into JVM, subscribe to his JVM Weekly. It’s great:
Ah, and React got compiler. Yes, R e a c t g o t c o m p i l e r. Times! And Angular 18 was released with a big set of improvements. I’m especially happy about Zone.js removal. I hate every minute of when I had to debug error routing me into Zone.js issue. 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
DevOpsDatabases
FrontendJavaKotlin
.NET
ToolsManagementInvite your friends and earn rewardsIf you enjoy Architecture Weekly, share it with your friends and earn rewards when they subscribe. |
Older messages
Architecture Weekly #180 - 20th May 2024
Monday, May 20, 2024
We started with an invitation to discuss Conway's Law. Then, we discussed recent Cloud provider mishaps. Well, one AWS mishap on the bill for a DDoSed S3 bucket and a nightmare from Google Cloud
Architecture Weekly #179 - 13th May 2024
Monday, May 13, 2024
This release has a few themes. We started with event-driven (yeah, surprise!), discussing the potential errors and ways to handle them. Then we checked if serverless cold-starts are THAT scary and
Architecture Weekly #178 - 6th May 2024
Monday, May 6, 2024
This time, we discussed biases. Biases on the perspective on our technologies, so not seeing their evolutions. We also checked how biases can impact our knowledge, collaboration and eventually also the
Architecture Weekly #177 - 29nd April 2024
Monday, April 29, 2024
How do you make predictions about tech without the magical crystal ball? We did that today by example. We analysed what Redis and Terraform license changes relate to the new Typescript framework Effect
Architecture Weekly #176 - 22nd April 2024
Monday, April 22, 2024
This week, we looked at mocking in tests and, more importantly, different shades of the load testing. We also discussed other tools that can help you reach the expected SLO. We looked at various
You Might Also Like
WebAIM February 2025 Newsletter
Friday, February 28, 2025
WebAIM February 2025 Newsletter Read this newsletter online at https://webaim.org/newsletter/2025/february Feature Global Digital Accessibility Salary Survey Results The results of the WebAIM and GAAD
JSK Daily for Feb 28, 2025
Friday, February 28, 2025
JSK Daily for Feb 28, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Introducing the New Angular TextArea Component It is a robust and flexible user interface
Daily Coding Problem: Problem #1704 [Medium]
Friday, February 28, 2025
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Amazon. At a popular bar, each customer has a set of favorite drinks, and will happily
iOS Dev Weekly – Issue 701
Friday, February 28, 2025
What does Dave write about when he has a fever? 🤒 Let's find out!
Feature | The Best Visualizations from February on Voronoi 🏆
Friday, February 28, 2025
See the most popular, most discussed, and most liked visualizations on our new data storytelling app Voronoi from February. View Online | Subscribe About a year ago, we launched Voronoi, our free new
Issue #582: Phaser Launcher, DOOM in TypeScript types, and A Prison for Dreams
Friday, February 28, 2025
View this email in your browser Issue #582 - February 28th 2025 Weekly newsletter about Web Game Development. If you have anything you want to share with our community please let me know by replying to
Stop Android photo surveillance 🔍
Friday, February 28, 2025
Cheaper streaming 📺; 1Password nightmare 💀 -- ZDNET ZDNET Week in Review - US February 28, 2025 machine eye A new Android feature is scanning your photos for 'sensitive content' - how to stop
Why Natural Language Coding Isn’t for Everyone—Yet
Friday, February 28, 2025
Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, February 28, 2025? The
iOS Cocoa Treats
Friday, February 28, 2025
View in browser Hello, you're reading Infinum iOS Cocoa Treats, bringing you the latest iOS related news straight to your inbox every week. Animatable Protocol: Taming Unruly SwiftUI Animations In
Your new cheap TV streaming option 📺
Friday, February 28, 2025
GPT-4.5; AI work study; Smartwatch faceoff ⌚; Run your own cloud -- ZDNET ZDNET Tech Today - US February 28, 2025 tv watching DirecTV's new no-contract 'Genre Packs' start at $35 - and you