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
💡 Can Renters Have a Smart Home? — Getting the SteamOS Beta on Steam Deck
Saturday, September 28, 2024
Also: Your Google Doc Can Now Have a Stylish Cover, and More! How-To Geek Logo September 28, 2024 Did You Know If Johnny Depp hadn't been available to play Willy Wonka in Charlie and the Chocolate
Meta's new empire: VR, AR and AI - Sync #486
Saturday, September 28, 2024
Plus: Mira Murati leaves OpenAI; Microsoft to revive a nuclear plant for its AI data centre; bioengineered trees that capture more carbon; stem cell therapy for diabetes; and more! ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
The Paywall’s Final Frontier 🔒
Saturday, September 28, 2024
Could CNN's planned paywall be a harbinger for free online news? Here's a version for your browser. Hunting for the end of the long tail • September 28, 2024 The Paywall's Final Frontier
Feature | The Best Visualizations from September on Voronoi 🏆
Saturday, September 28, 2024
See the most popular, most discussed, and most liked visualizations on our new data storytelling app Voronoi from September View Online | Subscribe In December 2023, we publicly launched Voronoi, our
Daily Coding Problem: Problem #1570 [Medium]
Saturday, September 28, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Epic. The "look and say" sequence is defined as follows: beginning with the
Will Data Centers Ruin Your Neighborhood?
Saturday, September 28, 2024
Top Tech Content sent at Noon! A dev conference with discussions, workshops, and 1:1 feedback sessions Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today
🐍 New Python tutorials on Real Python
Saturday, September 28, 2024
Hey there, There's always something going on over at Real Python as far as Python tutorials go. Here's what you may have missed this past week: Python Virtual Environments: A Primer In this
ALERT - Critical Linux Printing System Flaws Could Allow Remote Command Execution
Saturday, September 28, 2024
THN Daily Updates Newsletter cover [Watch LIVE] Building a Successful Data Security Posture Management Program Learn From the Leaders: Early DSPM Adopters Reveal Their Data Security Success Secrets
Monitor Your Heart Health Every Day
Saturday, September 28, 2024
Withings is reducing the price of BPM Connect to $99.95 in the US, reaffirming our dedication to accessible health tech. With nearly half the adult population affected by high blood pressure, we're
📧 Breaking It Down: How to Migrate Your Modular Monolith to Microservices
Saturday, September 28, 2024
Breaking It Down: How to Migrate Your Modular Monolith to Microservices Read on: my website / Read time: 9 minutes The .NET Weekly is brought to you by: Integrate e-signatures into your workflows