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
Re: Hackers may have stolen everyone's SSN!
Saturday, November 23, 2024
I wanted to make sure you saw Incogni's Black Friday deal, which is exclusively available for iPhone Life readers. Use coupon code IPHONELIFE to save 58%. Here's why we recommend Incogni for
North Korean Hackers Steal $10M with AI-Driven Scams and Malware on LinkedIn
Saturday, November 23, 2024
THN Daily Updates Newsletter cover Generative AI For Dummies ($18.00 Value) FREE for a Limited Time Generate a personal assistant with generative AI Download Now Sponsored LATEST NEWS Nov 23, 2024
📧 Building Async APIs in ASP.NET Core - The Right Way
Saturday, November 23, 2024
Building Async APIs in ASP .NET Core - The Right Way Read on: my website / Read time: 5 minutes The .NET Weekly is brought to you by: Even the smartest AI in the world won't save you from a
WebAIM November 2024 Newsletter
Friday, November 22, 2024
WebAIM November 2024 Newsletter Read this newsletter online at https://webaim.org/newsletter/2024/november Features Using Severity Ratings to Prioritize Web Accessibility Remediation When it comes to
➡️ Why Your Phone Doesn't Want You to Sideload Apps — Setting the Default Gateway in Linux
Friday, November 22, 2024
Also: Hey Apple, It's Time to Upgrade the Macs Storage, and More! How-To Geek Logo November 22, 2024 Did You Know Fantasy author JRR Tolkien is credited with inventing the main concept of orcs and
JSK Daily for Nov 22, 2024
Friday, November 22, 2024
JSK Daily for Nov 22, 2024 View this email in your browser A community curated daily e-mail of JavaScript news React E-Commerce App for Digital Products: Part 4 (Creating the Home Page) This component
Spyglass Dispatch: The Fate of Chrome • Amazon Tops Up Anthropic • Pros Quit Xitter • Brave Powers AI Search • Apple's Lazy AI River • RIP Enrique Allen
Friday, November 22, 2024
The Fate of Chrome • Amazon Tops Up Anthropic • Pros Quit Xitter • Brave Powers AI Search • Apple's Lazy AI River • RIP Enrique Allen The Spyglass Dispatch is a free newsletter sent out daily on
Charted | How the Global Distribution of Wealth Has Changed (2000-2023) 💰
Friday, November 22, 2024
This graphic illustrates the shifts in global wealth distribution between 2000 and 2023. View Online | Subscribe | Download Our App Presented by: MSCI >> Get the Free Investor Guide Now FEATURED
Daily Coding Problem: Problem #1616 [Easy]
Friday, November 22, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Alibaba. Given an even number (greater than 2), return two prime numbers whose sum will
The problem to solve
Friday, November 22, 2024
Use problem framing to define the problem to solve This week, Tom Parson and Krishna Raha share tools and frameworks to identify and address challenges effectively, while Voltage Control highlights