Architecture Weekly #128 - 22th May 2023
Welcome to the new week!
It’s an anniversary release of the Architecture Weekly 10000000! How quickly did it go? Woohoo!
Usually, one of the main drivers for Event Sourcing is the audit log capability. Indeed event stores are append-only logs, theoretically, we're getting that for free. Yet, I'm usually not putting it as the front reason, and there are a few reasons for that.
I tried to cover them in my latest article, as I prefer people jump on the Event Sourcing bandwagon because it's helpful for them rather than being blind by the hype and then failing.
Read more:
As architects, we should always try to challenge the status quo. Of course, not just for disagreeing, but to ensure that our common practices have a ground basis or are rituals. Michale Feathers, in his classic article, wrote about using mocks:
My point is that we can't look at testing mechanistically. Unit testing does not improve quality just by catching errors at the unit level. And, integration testing does not improve quality just by catching errors at the integration level.
Discussions Unit vs Integration etc. are usually meaningless if they don’t involve the context and the feature we’d like to test. Read more in:
Have a look also at the recent Rebecca Wirf-Brock article showing the testing and development process from multiple angles. It neatly explains that testing is not only about quality assurance.
I think that you should already know that I’m not fond of craftsmanship, clean code and other Robert C. Martin concepts. There are many reasons for that, I presented some in What onion has to do with Clean Code?. Criticism is good as long as it’s based on facts and is constructive. That’s what Kevlin Henney did in his talk. Watch more in:
Some may say that such stuff is about tactics, and strategy is important. My take is that all are important; the big things are built from the small ones. A great strategy won’t work with the wrong execution. Also, projects are failing from the wrong vision and those annoying papercuts that are killing projects every day.
Yet, from my experience shaping the right product direction is one of the essential things. Of course, we’re usually building software to earn money, but if earning money is our primary goal, we don’t have a differentiator, as all the others also want that.
To be a good product manager is not easy; you need to acquire multiple skills: design, management, empathy, collaboration, etc.
Check those two links to read more about product development:
Zalando - Discovering & launching products in Zalando SE by Stefano Rinaldi
Sam McAfee - This Agile Hammer Doesn't Work For New Product Development
Have a read also about the classic work on how to acquire the skills from Dreyfus & Dreyfus. This is the groundwork in this area, surprisingly not much has changed from the release of it:
See also how to make teams effective:
And how NOT to make teams effective by putting your ego in front of everything:
If you’re looking for another oldie, then have a look at the Byte Magazine edition from 1981, which was fully dedicated to AI:
Looking for something more technical? Check a decent case study showing how Monzo designed their banking software architecture. It’s an intriguing explanation of how to use Cassandra at scale together with Kubernetes. I’d be interested in learning more about their modelling, but it’s still a good read on the technical aspects of this process.
If you're into Azure space and want to start your journey with Cloud Native, Microsoft provided good ramp up materials:
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
Oskar Dudycz - Is the audit log a proper architecture driver for Event Sourcing?
J.B. Rainsberger - Surviving Your Inevitable Agile Transition
DevOps
Testing
Frontend
AI
Azure
Java
.NET
Jeremy D. Miller - Marten V6 is Out! And the road to Wolverine 1.0
Rick Strahl - Implementing Two-Factor Auth using an Authenticator App in ASP.NET
JetBrains - C# Support in Fleet: Solution View, Unit Testing, and More!
Microsoft - Learn how to modernize your .NET apps from the pros!
Python
Management
Product Design
Zalando - Discovering & launching products in Zalando SE by Stefano Rinaldi
Sam McAfee - This Agile Hammer Doesn't Work For New Product Development