Architecture Weekly #116 - 27th February 2023
Welcome to the new week!
I see a lot of new terms like Command-Event, Event-Based Compute, etc., presented around Event-Driven Architecture. Let me clear that up because there are no such things.
Event-Driven Architecture buzzwords are dangerous, as they're blurring the view on how to apply event-driven patterns. That's especially dangerous if such misunderstandings come from popular tooling providers or authorities.
I decided to tame some of that, wear the Don Quichote armour again and choose violence to tame that misinformation. Check my recent article:
Ok, that's a half joke, half serious. No violence included; that's not my style. Still, it's an expanded and polished version of my small rant that went pretty viral.
Check also a presentation on a similar topic covering different considerations around Events from Milen Dyankov:
Being a Software Architect can be seen as continuously playing 4D Chess. We need to define what’s important and what’s not. Based on that, select tradeoffs. As mentioned above, even something presented as a best practice can be considered an anti-pattern and the other way round.
Listen to Neal Ford’s guest appearance in Tech Lead Journal podcast when he brought those topics explaining neatly what’s being architect all about:
Event Sourcing is perceived as a complex pattern. Some believe it's like Nessie; everyone's heard about it but rarely seen it. Actually, Event Sourcing is a pretty practical and straightforward concept. It helps build predictable applications closer to business. Nowadays, storage is cheap, and information is priceless. In Event Sourcing, no data is lost.
I'm regularly doing workshops with multiple companies showing them the pragmatic side of it. I have the rule that I open-source all the backing codes and exercises to benefit others.
You can do the workshop as a self-paced kit. That should give you a good foundation for starting your journey with Event Sourcing and learning tools like Event Store.
Of course, it’s not the same experience as attending the workshop, but it's still a decent starting point.
If you need more than that and want full coverage with all nuances of the private workshop, check the training page or contact me directly 🙂
We’re still living in the relational databases world, but day by day, it’s changing. Cloud providers and managed services made hosting such solutions easier, as we can outsource operations to specialised companies. That enabled us to select storage easier to our needs. I wrote about that in Unobvious things you need to know about key-value stores. Check examples of interesting databases and their architecture choices:
DataStax - ACID Transactions Are Coming To Apache Cassandra: Here's Why We're Excited
SpiceDB - Open Source, Google Zanzibar-inspired fine-grained permissions database
And speaking about storage, do you know you can use Youtube as any file storage?
Architecture is quite often monopolised by the backend developers’ point of view. I think that has to change. As our browser engines and the power of computers and mobiles got so big, we can offload the network traffic and compute to frontend applications. Yes, applications; I think they’re just different deployments, and we should think about them, not front-end websites but as part of our distributed infrastructure. Yet, to do that efficiently, we need to apply proper composition, modularisation etc. Read more in a thorough write-up on this topic:
One of the emerging trends is the tooling that will help us distinguish AI-generated text from human-written works. AI can be super helpful and make our life easier, but it’s also dangerous if we take what we get from it for granted. The first try is to provide such a detector:
I checked this e-mail, and it seems that no GPT was applied in it. Good for you!
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 - Don't let Event-Driven Architecture buzzwords fool you
Milen Dyankov - Demystifying "event” related software concepts and methodologies
Tech Lead Journal Podcast - Software Architecture: From Fundamentals to the Hard Parts - Neal Ford
Alexey Zimarev - You don't need an Event Sourcing framework. Or do you?
Mathias Verraes - Eventsourcing Patterns: Multi-temporal Events
Gara Mohamed - DDD in action: a cohesive mechanism from trenches
Databases
DevOps
Testing
Frontend
AI
JVM
.NET
Node.js
Industry
CNBC - Three decades after inventing the web, Tim Berners-Lee has some ideas on how to fix it
ComputerWorld.com - Amazon denies claims hiring freeze is slowing AWS sustainability work
Security
Troy Hunt - Down the Cloudflare / Stripe / OWASP Rabbit Hole: A Tale of 6 Rabbits Deep
SpiceDB - Open Source, Google Zanzibar-inspired fine-grained permissions database