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
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