Architecture Weekly #145 - 25th September 2023
Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free. Welcome to the new week! People fear the wrong state in the event streams while not being afraid of traditional storage. And here's the deal: both may be broken the same way. The difference is that we may not even notice that it's broken in the traditional storage. We'll see that in Event Sourcing because we have tools for that. Event streams, if modelled correctly, can give us explicit details on the current state, why it is like that, and how we got here. In my latest article, I expanded using the hotel housekeeping schedule adjustments as an axis for dealing with the change in Event Sourcing. Change is always hard; I understand that. Not knowing about the bad case can be more blissful than knowing the hard truth. Still, if we don't want to ignore the facts and create proactive systems, then having a clear view is a big benefit that shouldn't be seen as a challenge. Read more: I'm delighted that Derek Comartin is doing the hard work for me so often. In the last few days, I was asked by 3 different people about the Listen to yourself "pattern". It's great that I could link Derek's video and just say ditto: Listen to Yourself is one of those "patterns" that came right from the tooling limitations to work around them and get so popular that they started to be called a pattern. From my perspective, it's mostly anti-pattern as the real usage is limited. It introduces the consistency difficulties that could be handled using the right solutions, like the Outbox pattern or not treating the queue as a database. How do you deal with consistency and handling business workflows properly, then? Yves Reyhnout provided a great answer for that: You rarely see blog articles that show breakthroughs and trigger such in the readers. I was searching independently for the essence of the modelling and explaining how to model asynchronous/distributed processes and straightforwardly implement them. You can see that in: Yet, what Yves provided is a condensed and actionable explanation. Rarely are patterns prescriptive. I’d compare the importance and the impact similar to Jérémie Chassaing's Decider. It’s a must-read for anyone interested in Event-Driven Architecture. One of the conclusions from the previously mentioned articles is that aligning your architecture with the business problem is critical. We see emergent approaches like team topologies and platform engineering. I’m not so gullible to hope that all companies will understand the impact of Conway’s Law and the need to reduce cognitive load. Still, I hope those approaches will be expanded enough to impact our industry more. We’re not Business and IT anymore; now, IT is a Business. Ryan Shriver did an intriguing case study on how you can align your cloud architecture with business: Of course, I’m not a huge fan of the buzzwords like Domain-Driven Cloud. They sound cheesy, but you probably need a catchy term to promote the approach. Still, the article is good. It explains and presents a good framework for how to start your architecture design. It promotes the approach by starting with a logical split based on the business domain, then breaking it down into bounded contexts (modules), thinking about the expected workloads and aligning that with cloud technologies. This article also aligns well with articles I linked in past editions:
It’s important to remember that the cleanness of the approach is not an end goal. The end goal is to deliver software that fulfils business requirements and does that correctly. We should not make rotten compromises around performance just because we want clean code or architecture. Those terms are blank and can be interpreted in numerous ways. Our solutions need to be user-friendly but also machine-friendly. Read more on how to build proper solutions, focusing on the approach's performance and correctness. One of the things that we’re missing in our industry is accountability. We’re too focused on measuring the metrics instead of focusing on the outcome and being accountable for it. Aaron Stannard took the try to describe that challenge: He broke down accountability into three groups:
I think that we should realise that we’re all accountable to someone, and delivering a proper solution is a joint effort of all parts. Of course, building the right process that enables good from people is essential, but we should also not forget to make them accountable. I wrote about that in On the importance of setting boundaries in team management. Read also an interesting interview with Ron DeVera, ex-Twitter (or ex-X…) Staff Engineer. He shares his lessons learned on how to influence the outcome, dealing with difficult coworkers and managing up: Check also other links! 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
DevOpsJavaScriptAIJava.NET
RustCoding LifeManagementIndustry
ToolsSecurityYou're currently a free subscriber to Architecture Weekly. For the full experience, upgrade your subscription. |
Older messages
Architecture Weekly #145 - 18th September 2023
Monday, September 18, 2023
Welcome to the next release, the first one as the Substack Bestseller! As always, you'll find here a set of links that will boost your design skills and architecture knowledge!
Webinar #13 - Yves Goeleven - The Fantastic 9
Sunday, September 17, 2023
Watch now (82 mins) | This time, a special guest Yves Goeleven, showed us Fantastic 9. What's that? Let's give Yves to explain it: There are thousands of design patterns to choose from, but in
Architecture Weekly became the Substack Bestseller!
Sunday, September 17, 2023
Boom, I got this week such a nice picture from the Substack. My Architecture Weekly newsletter appears to have become the Substack Bestseller for getting 100 paid subscribers. It's a nice
Architecture Weekly #144 - 11th September 2023
Monday, September 11, 2023
This release is all about messaging, click to see all 50 shades of it, and also find other resources that'll boost your software architecture skills!
Architecture Weekly #143 - 4th August 2023
Monday, September 4, 2023
Welcome to the new week! Accidental complexity can kill even the best-motivated person. We want to understand and reflect on the business process in the code, but our perspective becomes immediately
You Might Also Like
JSter #234 - Libraries and more
Monday, January 6, 2025
Happy new year JavaScripters! New year, new challenges. I have a small favor to ask you. I have a MSc student researching how AI is used for web development. To help out, fill his query (5-15 mins).
WP Weekly 225 - Wins - New Launches, 2025 Predictions, Year 2024 Recap
Monday, January 6, 2025
Read on Website WP Weekly 225 / Wins All the 2024 stuff is behind us; hoping everyone is a winner going forward in this amazing WordPress community. Let's start 2025 with WordPress goodness upfront
SRE Weekly Issue #458
Monday, January 6, 2025
View on sreweekly.com A message from our sponsor, incident.io: Ever wonder how Netflix handles incidents at their scale? With incident.io, they've built a process that's smooth, scalable, and
OpenAI proposes a new corporate structure - Sync #500
Sunday, January 5, 2025
Plus: Nvidia's next move; the state of AI hardware startups; "AI factories" for war; BYD enters humanoid robot race; ChatGPT Search vs. Google Search; and more! ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
🔋 You Need a Super-Fast USB Car Charger — First-Party vs. Third-Party Cookies
Sunday, January 5, 2025
Also: How I Use Shortcuts and Apple Numbers to Track My Time How-To Geek Logo January 5, 2025 Did You Know Theodore Roosevelt was the first US President to ride in an automobile while in office.
RD#487 Instance Hook Pattern
Sunday, January 5, 2025
co-located logic and controlled API
PD#607 Systems Ideas that Sound Good But Almost Never Work
Sunday, January 5, 2025
"let's just..." scenarios ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Android Weekly #656 🤖
Sunday, January 5, 2025
View in web browser 656 January 5th, 2025 Articles & Tutorials Sponsored Sick of your mobile apps crashing? Simon Grimm will show you how to fix them with less guesswork. Join Sentry's workshop
Daily Coding Problem: Problem #1659 [Easy]
Sunday, January 5, 2025
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by WhatsApp. Given an array of integers out of order, determine the bounds of the smallest
C#538 Unit Testing Clean Architecture Use Cases
Sunday, January 5, 2025
Battle-tested approach to unit testing