Architecture Weekly #162 - 15th January 2024
Welcome to the new week!
Should you record multiple events from business logic? It's a surprisingly important point for many people. Literally, one of the first questions when I explain business logic in Event Sourcing.
The answer is that it depends, but for me, the safe default is to return a single event instead of a multiple one. I think that (maybe counterintuitive) that helps in keeping precise business information, plus it reduces potential coupling.
How come? One of the reasons why people want to do it is optimising for code size, and IMHO, that's typically not something we should optimise by itself. We should optimise our model and code to represent our business workflow.
I wrote that in more detail in my latest article.
Last week, I talked a bit about Leslie Lamport's works and Cynefin's framework; let’s do a follow-up on that.
Some say nothing essential has come up in Computer Science since the 70s. That’s probably a bit too harsh, but some foundational concepts were set at that time by the giants on which shoulders we’re still standing. For instance, Leslie Lamport's work about the logical clocks is still a basis for reasoning about the causality of operations in the distributed world. You can read it here:
Read it, especially if you believe that depending on the time is safe. Or why does that sound like famous last words. Discussing that would be an interesting idea in our Papers We Love initiative.
Now Cynefin. As I explained in my article, that’s a decision-making framework. The other tool that helps in making decisions, especially strategic ones, is Wardley Maps. Recently, Simon Wardley discussed his perspective on the differences and similarities between them.
He finished it with
“The point I want to make is you can't simply transport Cynefin terms onto the evolutionary axis of a map, i.e. you can't substitute custom and product for terms like complex and complicated. It doesn't work like that. Also, when you are mapping, you should keep Cynefin in mind. It's a useful mental framework.
Every time you feel the urge to mash these frameworks into one all-encompassing ubermensch framework then just look at the DALL-E picture and stop. They are different but complementary. A diversity of viewpoints is not a bad thing.”
“A diversity of viewpoints is not a bad thing.” - great line to remember being the architect!
Speaking about the problem, product, solution space and strategy for them. Personally, I found the terms problem and solution space vague and confusing. Of course, you intuitively feel that you are solving some problem, but distinguishing the problem from the solution is not easy. Also, why do we need to keep such a split? That’s why I was happy reading a recent article by Nick Tune where he wrote:
“I’ve stopped using the terms problem and solution space. In this post, I’ll summarize better models suited to modern product development from leading product voices like Marty Cagan, Teresa Torres, John Cutler, and Indi Young.”
Modelling business processes and mapping them to the design is non-trivial. It’s not enough to just use the right colour of the sticky notes. Understanding the differences between them and their implications is essential. One of my favourite resources on this topic is Martin Shimak's talk:
Martin went great, explaining nuances and different shades of gray that you may observe while crunching the business process model.
Check also our past webinar, where we took an example of a real process and did both modelling and discussed implementation challenges:
Our Architecture Weekly Discord community was pretty busy this week. I like that many people are sharing their stories. This time, it discussed how to learn and which “shape” of experience to choose. Is it better to be a specialist or a generalist? Or maybe a bit of both. I gathered some of the links from that discussion:
Become a paid subscriber and join our community of fellow architects and technical leaders.
It’s essential to choose your career path wisely. There are two spectrums of such choices: being passive and expecting things to sort out. The other is to be overhyped and betting too much on niche things or emerging ones. The best choice is usually something between. Don’t let the hype fool you, but also be frank in observing trends. And recently, those trends are changing.
Many big companies are laying off. Some of that relates to the overcrowding of development teams during a pandemic. But some are just Lord Farquaad’s style of sacrifices from CEOs. See:
No matter the reason, this impacts a large group of our IT sector. Even if our company is fine and not laying off, it’s harder to find change, as more people are available.
Overhiring and big layoffs are like a pendulum swing of the hyped technologies. I told you that, but I’ll repeat it: If a business model requires theft, then it's not a business model. You probably know already where I’m going:
It’s like saying: "It’s impossible to sell other people’s cars without stealing them, therefore we must be allowed the business model of stealing cars." (source).
GenAI tools creators claim that machines can use knowledge as humans and are learning. Plus, that’s for innovation and all for humans. Unfortunately, this is pure demagogy. It’s not helping innovation but about the centralisation of knowledge. For example, when Google introduced summaries from another area, most people didn’t even click on the original content. This article explains that well:
We’re bashing Cloud providers that they’re benefiting from OSS licences. They take benefit of open licences but at least respect them (mostly). Here, GenAi is not giving such a minimum degree of decency.
I also don’t think this will eventually work for their customers, as those that pay well, so big corporations will require guarantees that their data won’t leak. Currently, the tools are cheating by giving “additional context” to queries. But it won’t scale. So, it doesn't look like a viable model. OpenAI's financial results confirm that they’re losing money. Google also said, "We Have No Moat, And Neither Does OpenAI".
Last but not least. What about privacy, law to be forgotten, etc.? Removing data is not possible without rebuilding the model.
I think the current “business model” is to grow big enough, hoping to blackmail legislators with users (so voters)’) backslash. Then make us pay.
Also, see how those AI tools are used:
See also longer, balanced take on the GenAI direction:
So choose your career direction wisely, and don’t let yourself be overhyped.
To end up with positive news, a 13-year-old has proven you can beat Tetris! It took us 29 years to get here!
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.