Architecture Weekly #166 - 12th February 2024
Welcome to the new week! I want to introduce you to Emmett! Finally, I gathered the patterns around Event Sourcing and CQRS I used last year and grouped them into a Node.js package. Check the documentation: Why Emmett? Because I'd like to take your event-driven tooling back to the future! The goal is to help reduce the boilerplate, enhance strong sides and help you skip common mistakes. Currently, you can find there abstractions for patterns like business logic (e.g. Decider), business workflows and command handling. More will come later. Read also more in the blog where I expanded on my motivation behind it: One of the things that are too often missed while doing event-driven design is data governance practices. We’re taking things too lightly. It may work well in some environments, but for the bigger enterprises, that’s too optimistic if we want to use event-driven tools as a communication backbone. Wim Debreuck explained in his talk why and how we can and should think more responsibly about defining our event model. He showed how to put our events in a broader context. He used Kafka as an example. Event Streaming is not the same as Event Sourcing, but both come from event-driven tooling, and many patterns are the same, and we can learn from each other. It’s essential to think about what should happen with the events we store, as it’s just the beginning of the journey. Check also: There was an interesting decision around the data governance. The Netherlands agency SIDN (Stichting Internet Domeinregistratie Nederland) decided to outsource part of its '.NL' domain registry services to Amazon Web Services (AWS). Initially, that went silent but ignited controversy, highlighting tensions between commercial interests and the collective security, stability, and sustainability of the Dutch (and the whole) Internet. In theory, the World Wide Web is a global thing, but the reality is that we still have borders, even if we don’t see them clearly on the Internet. It’s an interesting study of data sovereignty, so potentially, security and privacy around data should have lower priority than cutting costs or ambitions to enter the SaaS market by agencies. That raises concerns about European digital sovereignty and the long-term implications of entrusting essential services to major US cloud providers (or others). It has the potential to conflict with national interests and preserve digital autonomy. The case is ongoing. The Dutch Parliament is now questioning the decision, calling for stronger oversight, and reevaluating the criteria for managing such critical infrastructure. Read more in: On the other topic, Microsoft released two interesting case studies:
The first article is focused on using OpenAI services from your systems and doing that efficiently. Surprisingly, it’s not about AI per se, but the techniques here can be applied to any other integrations with external services. They showed their recommendations on how to do “smart load balancing”. Why is it smart?
This pattern should be applied carefully, respecting the specific integration characteristics, but can be useful. It’s nice that they also provided the repository with the code showing how to do it in practice. The second link explains how The Experimentation Platform at Microsoft (ExP) is doing A/B testing. They show how they’re technically organising their infrastructure to check different scenarios and features for various users. It’s a nice case study of using and configuring tools like reverse proxy to make the testing environment safe and predictable. In a similar spirit, there’s an article from Luc van Donkersgoed about considerations on single tenancy vs multi-tenancy. He wrote that switching from single-tenant to multi-tenant architecture for the Event-Broker e-Commerce (EBE) platform is like moving from private houses to a shared apartment building Initially, EBE's single-tenant setup offered simplicity and security, with each user having their resources. This made growth and scalability challenging due to limited resources and slower updates. Transitioning to multi-tenancy is aimed at sharing resources efficiently, like utilities in an apartment, to support growth and improve update speeds. However, this brings new challenges in managing shared spaces securely. The shift is a trade-off between the need for individual security and the benefits of shared efficiency. Read more: Check also a really decent write-up by George Ball explaining patiently the relationship between throughput and latency. It also shows scaling considerations: Last but not least, take a read of: Remember that no one will remember your overtime hours besides you and your family. 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
DevOpsTestingAzureGoJava.NET
Node.js
PerformanceManagementIndustrySecurity
TriviaInvite your friends and earn rewardsIf you enjoy Architecture Weekly, share it with your friends and earn rewards when they subscribe. |
Older messages
Architecture Weekly #165 - 5th February 2024
Monday, February 5, 2024
We started with the DevOps and Platform approach pitfalls, discussing Charity Majors's take and adding Conway's law into that. Then we reviewed the strategies for architecting multi-region
Architecture Weekly #164 - 29th January 2024
Monday, January 29, 2024
MVP, RAT, MVA and other minimum viability approaches
Webinar #16 - Simple patterns for events schema versioning
Friday, January 26, 2024
Watch now | Events schema versioning, or in other words, events evolution, is one of the first questions I get when explaining Event Sourcing. The topic may look scary, as how to evolve data that, by
Architecture Weekly #163 - 22nd January 2024
Monday, January 22, 2024
Today, we discussed the evolution. Not humankind but our data models and architecture. We found actionable guidance on how DDD techniques can help with that. We had a look at the Slack migration to
Architecture Weekly #162 - 15th January 2024
Monday, January 15, 2024
We started with getting back to Leslie Lamport's works, Cynefin and added Wardley Mapping to the game. We discussed how to and how to not think about our decisions and strategy. Also for product
You Might Also Like
Ranked | Which Country Has the Most Billionaires in 2024? 💰
Thursday, May 2, 2024
According to the annual Hurun Global Rich List, the US and China are home to nearly half of the world's 3279 billionaires in 2024. View Online | Subscribe Presented by: The economy is changing. Is
⚙️ Rovo
Thursday, May 2, 2024
Plus: Microsoft are (were?) terrified of Google's AI
Have VPN connection issues? This might be why
Thursday, May 2, 2024
DJI Power station; Studying with AI; Best gaming PCs -- ZDNET ZDNET Tech Today - US May 2, 2024 placeholder Having VPN connection issues? Microsoft warns the April 2024 Windows update is to blame If
Programmer Weekly - Issue 203
Thursday, May 2, 2024
View this email in your browser Programmer Weekly Welcome to issue 203 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "The hardest part of design is keeping
Python Weekly - Issue 648
Thursday, May 2, 2024
View this email in your browser Python Weekly Welcome to issue 648 of Python Weekly. Let's get straight to the links this week. News Fake job interviews target developers with new Python backdoor A
A new approach to access management for the way we work today
Thursday, May 2, 2024
Announcing 1Password® Extended Access Management ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Web Tools #563 - Frameworks, JSON/DB Tools, Vue, Nuxt.js
Thursday, May 2, 2024
WEB VERSION Issue #563 • May 2, 2024 Advertisement The Complete JavaScript Course 2024: From Zero to Expert This is an up-to-date JavaScript course covering modern techniques and features that will
Venture capitalists love musical chairs
Thursday, May 2, 2024
A number of investors have been swapping gigs and bouncing from prior employers to build new investing groups. View this email online in your browser By Alex Wilhelm Thursday, May 2, 2024 Good morning,
Gemini in Android Studio and more: Android Studio Jellyfish is Stable!
Thursday, May 2, 2024
View in browser 🔖 Articles Gemini in Android Studio and more: Android Studio Jellyfish is Stable! Android Studio Jellyfish (2023.3.1) is making waves with its official stable release! 🪼🌊 Dive into
wpmail.me issue#665
Thursday, May 2, 2024
wpMail.me wpmail.me issue#665 - The weekly WordPress newsletter. No spam, no nonsense. - May 2, 2024 Is this email not displaying correctly? View it in your browser. News & Articles Why Should You