Architecture Weekly #175 - 15th April 2024
Welcome to the new week! If you’re looking for a lightweight intro to Event Sourcing, check last week’s discussion with Maciej 'MJ' Jedrzejewski. On his podcast, we discussed the foundational stuff, busted some common myths and explained the facts. Watch it here: Using an In-Memory message bus can be overkill, especially for command handling where we have only a single entry point (e.g. API endpoint). In such cases, I suggest having just explicit application code in the endpoint. That gives a proper developer experience. As you understand your dependencies, you can go to the definition of business logic. A command bus requires much more jumping around the codebase as you hide all dependencies and handling details. If I have more than one entry point, e.g., event (as it always can/should have more than one recipient) or command that may come from messaging tooling and API, then the message bus is useful, as it allows me to build common middleware. The downside of the message bus is that it can create another level of indirection, making it hard to understand where the handler is, what the impact of the change is, etc. Also, it doesn't give proper delivery guarantees unless we wrap the whole process in transactions, which can cause deadlocks and other types of complexity. That's why I'm not using it everywhere, but where I need it. I evolved from the message bus all the things. But it still can be useful, especially for event publishing, where, by nature, you don't want to know how it'll be handled as an event producer. Still, in-memory buses, if used wisely, it's a must-have in our systems, even as part of our infrastructure layer. I wrote how to build a simple one and also had some fun with TypeScript. If you also want more Event-Driven (anti)patterns, check out this nice article from Barry O’Sullivan. He discusses in details how granular our events should be and how to find the sweet spot between completeness and focus on the process: Let’s leave the event-driven world and focus on the two stories. The first is from Adele Goldberg on her thoughts about the legacy of the Smalltalk language and how it impacted our design. The first article is a celebration of Smalltalk's 50th anniversary. Adele Goldberg helped create it alongside Alan Kay and Dan Ingalls at Xerox PARC. Smalltalk was a pioneer in object-oriented programming and graphical user interfaces, which are now common in software development. Goldberg discusses the original purpose of Smalltalk: to make a flexible, easy-to-use environment that could help users, especially beginners, understand and shape their world through programming. This environment was revolutionary because it allowed programmers to make changes and fix bugs while the program was running, a method now fundamental in software development. Smalltalk's integrated development environment and its approach to programming, focusing on objects and message sending, influenced many modern programming languages and tools. Alan Key’s vision is not shown as the basis for the Actor Model and messaging. That was closer to his original intention behind “Object-Oriented Programming.” Also, Eric Evans, inventor of the Domain Driven Design, came from the Smalltalk community. Goldberg explains nicely how Smalltalk's design greatly impacted developers' thinking about user interaction, program structure, and code readability—key aspects of modern software practices. Even though Smalltalk was beaten by other languages like C# and Java, it’s undeniable how much impact it made. The other is about Harp McGovern and her story of building a microcomputer empire. Lore Harp McGovern co-founded Vector Graphic from her home in California, turning it into a significant player in the early microcomputer market. She and her partner Carole Ely began making memory boards for the Altair 8800, quickly moving to produce their computers as business demands grew. This strategic shift allowed them to capture the burgeoning market of small and medium businesses that needed reliable computers for tasks like accounting and data management. Vector Graphic succeeded by adapting to the fast-changing tech landscape, which demanded quick responses to new technological challenges and market needs. Harp McGovern recognized early the importance of transitioning to products that lead to more sophisticated business applications. Still, the entry of major companies like IBM with their own PC created a new competition threat. Despite these challenges, Vector Graphic was able to keep up with the competition for some time. Harp McGovern also pioneered inclusive employee benefits and stock options, that are popular nowadays. Lore Harp McGovern's role in founding Vector Graphic highlights a key time in tech history when the industry was just starting to take shape. She turned a small startup into a major player in the microcomputer market, breaking ground as one of the few female CEOs to take a company public in Silicon Valley. Her story shows women's challenges in getting recognized in tech, often overshadowed by their male counterparts. It might be that history is written by winners, and IBM eventually won. Vector Graphic stuck too long with the CP/M operating system before switching to MS-DOS, which had become the industry standard partly because of its adoption by IBM. This delayed response to market shifts added to Vector’s struggles. That lead to the eventual bankruptcy. It’s good to look back and analyse the history of the industry and how technologies and products compete. That’s a decent addition to our daily work and broader analysis. For that, check also the article from another pioneer: And about the women's impact on the industry, see: Interesting news came from the US federal court. They ruled that AWS must pay up to $525 million in damages to technology company Kove for infringing cloud storage patents. If you didn't know Kove before, no worries, I also didn’t. Yet it seems that they claim that their solutions for scaling storage impacted the major cloud providers on some ground. Interesting is that it took 6 years to get the final verdict. Well, it's almost final, as AWS plans to battle for not paying it. Kove also sued Google a year ago for similar things. Fun times. Speaking about storage, PostgreSQL announced that they support .NET natively. This means that you can use C# and F# to write stored procedures in PostgreSQL (I hope that at least not Visual Basic…). To be honest, I’m skeptical about putting such a thing in PostgreSQL. To say mildly, I used .NET in MSSQL, which wasn’t a pleasure. Still, adding .NET to MSSQL strengthened .NET, as they found number of bugs because the environment was so different. I see that as some niche thing, I’d be much more keep to run WASM inside. Getting back from the history lessons. When I started, giving you a VM with a preconfigured dev environment was popular. You couldn’t code unless you were using it. I hated it. Now, history repeats itself with cloud development environments. Discord wrote a follow-up on their journey. Discord's move to cloud-based development environments using Coder shows a wider trend in tech towards centralized and standardized development processes. As companies grow, managing different development environments and keeping them consistent becomes really tough. Cloud environments help fix these issues by putting resources and settings in one place for all developers, no matter where they are. When I see that, it makes me think that we have reached the phase when we again are not able to deal with the complexities of the configuration of our systems. So we try to centralise the knowledge; even around local development environment setup. We’ve been there. In theory it may be a solution for the cause, if configured wisely it could cut the costs of hardware, but I think that the root cause is somewhere else. That our development practices and tooling are not accessible enough. 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
DevOpsDatabasesFrontendJavaJavaScript.NETTypeScriptToolsCoding LifeIndustrySecurity
You're currently a free subscriber to Architecture Weekly. For the full experience, upgrade your subscription. |
Older messages
Architecture Weekly #174 - 8th April 2024
Monday, April 8, 2024
We covered this time an XZ breach story. We provided perspectives from many angles: technical details, social engineering, and human to human. We also discussed brilliant jerks and jerks telling to
Architecture Weekly #173 - 1st April 2024
Monday, April 1, 2024
We started with big-bang info from me and then jumped quickly to debugging our thinking and applying a systemic approach. Then, we discussed what the Valkey thing is and whether it is really such a
Webinar #18 - Laïla Bougriâ: Debug your thinking
Friday, March 29, 2024
Watch now (87 mins) | Did you feel that you need to debug your mind? Did your (or your colleague's) biases impact your decision-making? How to improve it? How do you reason about the reasoning?
Architecture Weekly #172 - 25th March 2024
Monday, March 25, 2024
This time, we did an all-around journey from understanding where money comes from, so budgeting. Then we followed the money and discussed OSS sustainability issues on the example of Redis and their
Architecture Weekly #171 - 18th March 2024
Monday, March 18, 2024
We started by checking why May may be the month of Event Sourcing. Then we discussed Figma's way of dealing with database horizontal scaling and saw what new database improvements can bring WASM
You Might Also Like
This Week in Rust #588
Saturday, March 1, 2025
Email isn't displaying correctly? Read this e-mail on the Web This Week in Rust issue 588 — 26 FEB 2025 Hello and welcome to another issue of This Week in Rust! Rust is a programming language
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