Architecture Weekly #180 - 20th May 2024
Welcome to the new week! It’s been a while since the first edition of Papers We Love. In the first one, we tackled Sagas by Hector Garcia-Molina and Kenneth Salem. Now, we’ll tackle something less techy; we’ll go with socio-technical, and what better reference to do it than the famous article Mel Conway wrote when he introduced his law? In the next webinar, we’ll read the whole paper. Incredibly, this became like a gravity law. It always works, for better or worse. We’ll have the chance to discuss our experience and past challenges facing this hard law. I count on you that you join and add your feedback, and we’ll have an intriguing discussion! The webinar will happen on Thursday, May 23rd, at 6 PM CEST (UTC+2) and last 1-1.5h depending on the number of discussions. Become a paid subscriber and join us live! Everyone likes to talk about best practices. I went the other way around and gathered all the worst practices on how to build the worst Event Sourcing system. Was it easy? It was not, as building the worst Event Sourcing system, we cannot cheat and just go with Event Streaming rebranding the name. What to do next? Check the recording of my talk at NDC London, where I told the story of the project Franz: the Worst Event Sourcing System. Jokes aside. Event Sourcing is perceived as a complex pattern that’s challenging to learn. In fact, it's pretty simple, but the common misconception and the way it's taught may lead to such a conclusion. By going through the worst ideas, I wanted to show the essence of Event Sourcing. That was probably the hardest talk I gave so far from the presenting technique. The narrative has a few twists, so feedback is more than welcome! Also, if you’d like to build your Event-Driven systems correctly, I’m happy to provide training or consulting. Contact me, and we’ll find a way for you! Profiles are one of the most underrated Docker Compose features. They enable keeping multiple configurations in the same file and running a subset of images. That means you can run a subset of containers. For instance, if you’re working on Frontend, you can run only backend services and the other way around. In my latest article, I described in practice both how to do it and why you should. I backed that up with the recent refactoring of my samples. Are you using them? Learning about features is not always a pleasant experience; Maciej Pocwierz learned about it the hard way. He got a big bill from AWS for spending on unauthorised requests to his S3 bucket.
After contacting AWS, he got his bill cancelled but “emphasized that this was done as an exception”. Sounds like there’s no better way to have some long-term fix than public shaming… This article went pretty wide, as the scenario was really surprising, that you may be paid for DDoS even if you secured your bucket etc. A week ago, AWS announced that Amazon S3 will no longer charge for several HTTP error codes, including Access Denied, which Maciej faced. Cool. UniSuper (a $135 billion pension account) wasn’t so lucky with the Google Cloud disaster. The whole account, including backups, was removed, and it took them almost two weeks to get full restoration. That wouldn’t have been possible without the double-backup storage. They also kept backups in other locations than Google Cloud. The reason is still unknown; Google Cloud still didn’t provide more details publicly than information from their CEO:
I’ll try to keep an eye on that and provide you with more details if the post-mortem is released. Read the full coverage from ArsTechnica: James Shore released his online course “Testing Without Mocks” for free. It’s a great opportunity to learn more about his A-Frame architecture. I’m definitely planning to go through it soon (if I survive busy May!). If you’re looking for a thorough and practical case study on how to make PostgreSQL faster, then check this article: It nicely goes through an analysis of why queries are slow, how to approach query plans, and how to find and validate improved solutions. I really believe that big things are built from small pieces. Atomic Habits is one of the rare non-fiction books that I recommend to others. Some time ago, I explained how that can also be applied to the software architecture. I’m happy that others also have a similar perspective. Check Nathan Silnitsky's talk, where he’s showing his way on how atomic habits can help go in your journey: One of the good habits is testing and ensuring that your work won’t contract with other systems and teams. Contract testing is not always easy, but we can benefit from simpler approaches like Snapshot testing. We’re snapshotting the final state. When we provide the new version of the implementation, we can verify the new output with the new one. In .NET, there’s a great tool, Verify made by Simon Cropp that enables such tests, check two materials on it: I’ll also soon have more materials on compatibility testing. You can already check this PR or that one, but stay tuned for the write-up. Have also a look at Hillel Wayne’s thoughts on integration testing 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
DevOps
DatabasesTestingAI
AWSJavaJVM.NET
Coding LifeIndustrySecurityTriviaInvite your friends and earn rewardsIf you enjoy Architecture Weekly, share it with your friends and earn rewards when they subscribe. |
Older messages
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
Architecture Weekly #175 - 15th April 2024
Monday, April 15, 2024
This time we took a history lesson. We discussed the Adele Goldberg story on how Smalltalk language impacted the way we code today. We also went through the forgotten story of Harp McGovern and her
You Might Also Like
📧 Simple Messaging in .NET With Redis Pub/Sub
Saturday, July 27, 2024
Simple Messaging in .NET With Redis Pub/Sub Read on: my website / Read time: 5 minutes BROUGHT TO YOU BY API Collaboration Has Never Been Easier API Collaboration has never been easier with
📳 Galaxy Z Flip 6 Review — How to Watch the 2024 Summer Olympics for Free
Friday, July 26, 2024
Also: Fixing Spotify's Repeating Ads, and More! How-To Geek Logo July 26, 2024 Did You Know The rectangular area of a flag found in the upper left corner (top hoist corner) of the flag, such as the
Your monthly update has arrived
Friday, July 26, 2024
What's new in Google Play and Android July 2024 The Collections surface engages users with content Introducing Collections, a new on-device surface for your content Collections present users with
iOS Dev Weekly - Issue 671
Friday, July 26, 2024
There are two types of apps on the visionOS App Store. Will you create an app that makes people reach for the headset? 🥽 View on the Web Archives ISSUE 671 July 26th 2024 Comment In the last two weeks
Ranked | The 10 Busiest Ports in the World, by Cargo Traffic 🚢
Friday, July 26, 2024
As critical nodes for trade and commercial activity, we show the top 10 busiest ports in the world by cargo volume. View Online | Subscribe Presented by: Is Your Portfolio Powering the Future? >>
Let the Games Begin
Friday, July 26, 2024
Week of July 22, 2024 Let the Games Begin Week of July 22, 2024 By MG Siegler • 26 Jul 2024 View in browser View in browser Mark Zuckerberg loves two things above all else right now: llamas and
Daily Coding Problem: Problem #1508 [Hard]
Friday, July 26, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Uber. Given an array of integers, return a new array such that each element at index i
OpenAI announces SearchGPT - Weekly News Roundup - Issue #477
Friday, July 26, 2024
Plus: Will billionaires live forever; a police robot dog jamming wireless networks; Alphabet to invest $5B into Waymo; warnings about “model collapse”; a new partnership for AI security; and more! ͏ ͏
Using Data as a Product Manager
Friday, July 26, 2024
If you had your choice between a little data or a lot of data on which to guide decisions, which would you pick?
Last Mile of Blockchains: RPC and Node-as-a-Service
Friday, July 26, 2024
Top Tech Content sent at Noon! Find the hottest jobs from top tech companies Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, July 26, 2024? The