Welcome to the new week!
Keeping head above water is a humble confession from Chris Klug.
I somehow missed his talk while I was at NDC Oslo. It's an important thing to watch. Our industry is filled with grind culture. You can easily find yourself in the corner having hard time to back to the proper mental state. Especially in the async world.
I'm also trying to keep my head above water. I'm also struggling and having the feeling-well, feeling-bad cycles. I'm quite often balancing on the burnout cycle and just trying to stay afloat.
We should care about our mental health in the same way we're carrying about our physical fitness. And it's okay to say admit you're feeling bad when you do. Watch it here:
Events join the technical and business worlds. Yet, when we apply that, we may get unexpected prosaic issues. For instance: how to serialise them? Should I just value objects in them or just primitives?
We should design our events case by case, putting information about the results of the business process. The closer they are to a domain, the better. Yet, this flexibility has a price.
Being flexible by convention means we cannot apply one convention to rule them all. So our typical serialisation strategies may fail. What's the solution, then?
We can go fully explicit both in the serialisation and event type mapping. I wrote about that in my latest article:
Remember when I told you last week that the western world may be preparing for a new sort of cold war with China? It seems that things are moving into that. One of the battle places may be social media, starting from Tik Tok.
This is especially intriguing, keeping in mind that (in theory) TikTok should be storing data in the USA in Oracle servers. It’s worth keeping an eye on that, as either the Oracle deal was not enough to guard USA data, or things are getting more political. Or both.
There’s a nice section on security issues. You’ll find here yet another serious Okta leakage, wallpaper that kills Android phones, plus LastPass breached and new Spring vulnerabilities.
Bleeping Computer - Okta's source code stolen after GitHub repositories hacked
Snyk.io - Exploring the Spring Security authorization bypass (CVE-2022-31692)
Idempotency is a word that easy to spell wrongly and can get you into trouble. It’s also surprisingly hard to implement (no pun intended). Check following links to get you in the right direction:
Ben Nadel - Considering Strategies For Idempotency Without Distributed Locking With Ben Darfler
Jon Chew - Avoiding Double Payments in a Distributed Payments System
Jimmy Bogard - Refactoring Towards Resilience: Evaluating SendGrid Options
Remember that Mercedes put an acceleration boost behind the paywall? Now Intel is trying to introduce “pay-as-you-go” processors. It’s happening...
This is the last edition of Architecture Weekly this year. Thank you for being here; that means a lot to me. Having such a community of readers helps me to motivate to keep this going. All the best, and stay healthy!
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 - Explicit events serialisation in Event Sourcing
Ben Nadel - Considering Strategies For Idempotency Without Distributed Locking With Ben Darfler
Jon Chew - Avoiding Double Payments in a Distributed Payments System
Jimmy Bogard - Refactoring Towards Resilience: Evaluating SendGrid Options
Gregor Hohpe - I Made Everything Loosely Coupled. Does My App Fall Apart?
Derek Comartin - You want to use Kafka? Or do you really need a Queue?
The Hanselminutes podcast - Hachyderm's Kris Nova on running a Mastodon Server
Leigh Griffin, Chris Foley - Going from Architect to Architecting: the Evolution of a Key Role
AI
Go
Java
.NET
Jeremy D. Miller - Transactional Outbox/Inbox with Wolverine and why you care
Jonathan Allen - .NET 7 Adds Aggressive Garbage Collection for Kubernetes
Node.js
Rust
TypeScript
Andrey Starovoyt - Behind the Scenes: Discussing One of the Most Interesting TypeScript 4.9 Features
Coding Life
Industry
Anton Shilov - Intel Officially Introduces Pay-As-You-Go Chip Licensing
DataQuest - How AWS enabled the making of ‘Avatar: The Way of Water?’
Great work Oskar!